16,557
社区成员
发帖
与我相关
我的任务
分享
Do
For i = 0 To 10
If Form1.arrThread(i).IsAlive = False Then
ii = ii + 1
End If
Next
Application.DoEvents()
Loop Until ii = 11
Dim d As System.Threading.Thread
ListBox1.Items.Clear()
For eee As Integer = 1 To 5
Dim toget1 As New enn(ListBox1, eee)
d = New System.Threading.Thread(AddressOf toget1.tolistboxadd,waitHandles(eee))
d.Start()
Next
Imports System
Imports System.Threading
Public Class ThreadClass
Private Shared Event Completed As EventHandler
Private Shared ThreadCount1 As Integer = 11 '创建11个线程
Private Shared ThreadCount2 As Integer = 0
Public Shared Sub Main()
Dim Thread As Thread
ThreadCount2 = 0
'事件与过程绑定
AddHandler Completed, AddressOf ThreadCompleted
'创建并执行线程
For i As Integer = 1 To ThreadCount1
Dim d As ThreadClass = New ThreadClass
Thread = New Thread(New ParameterizedThreadStart(AddressOf ThreadProcess))
Thread.Start(i)
Next
Console.ReadKey()
End Sub
'每个线程结束的时候都要调用的时间
Private Shared Sub ThreadCompleted(ByVal sender As Object, ByVal e As EventArgs)
ThreadCount2 += 1
If ThreadCount1 = ThreadCount2 Then
Console.WriteLine("这是所有线程执行完才执行的内容")
End If
End Sub
'线程处理过程
Private Shared Sub ThreadProcess(ByVal parameter As Object)
For i As Integer = 0 To 100
Console.WriteLine("这是线程{0}中执行的内容", parameter.ToString)
Next
'触发事件
RaiseEvent Completed(Nothing, Nothing)
End Sub
End Class