积极答复者
线程中触发事件的问题?

问题
答案
-
-
Code Snippet
Public Event MainEvent(ByVal str As String)
Dim calevent As New ManualResetEvent(False)
Private Sub DoMain()
AddHandler MainEvent, AddressOf DoMainEventWhile (True)
If (calevent.WaitOne(100, False)) Then
calevent.Reset()
RaiseEvent MainEvent("test")
End If
Debug.Print(Thread.CurrentThread.Name)
End While
End Sub
Private Sub DoBack()Thread.Sleep(3000)
Debug.Print(Thread.CurrentThread.Name)
calevent.Set()End Sub
Private Sub DoMainEvent(ByVal str As String)
Debug.Print(Thread.CurrentThread.Name & ";" & str)
End SubDim mainThread As New Thread(AddressOf DoMain)
mainThread.Name = "main"
mainThread.Start()Dim backThread As New Thread(AddressOf DoBack)
backThread.Name = "back"
backThread.Start()
全部回复
-
-
Code Snippet
Public Event MainEvent(ByVal str As String)
Dim calevent As New ManualResetEvent(False)
Private Sub DoMain()
AddHandler MainEvent, AddressOf DoMainEventWhile (True)
If (calevent.WaitOne(100, False)) Then
calevent.Reset()
RaiseEvent MainEvent("test")
End If
Debug.Print(Thread.CurrentThread.Name)
End While
End Sub
Private Sub DoBack()Thread.Sleep(3000)
Debug.Print(Thread.CurrentThread.Name)
calevent.Set()End Sub
Private Sub DoMainEvent(ByVal str As String)
Debug.Print(Thread.CurrentThread.Name & ";" & str)
End SubDim mainThread As New Thread(AddressOf DoMain)
mainThread.Name = "main"
mainThread.Start()Dim backThread As New Thread(AddressOf DoBack)
backThread.Name = "back"
backThread.Start()