在VB .NET中,当您调用RaiseEvent X()时,处理事件X的函数是异步还是同步处理的。我曾经认为RaiseEvent和事件处理是同步的,除非明确在另一个线程上创建。不过,有人告诉我这不是这样的。
我刚刚也进行了一些测试...
(该句中的英文原句已被翻译)Public Sub MyHandler() Handles Complete
MsgBox("My Handler - Beginning 5 second sleep")
Threading.Thread.Sleep(5000)
MsgBox("My Handler - Awoken")
End Sub
Public Sub SomeFunction()
MsgBox("Some function - Raising Event")
RaiseEvent Complete()
MsgBox("Some function - After Event")
End Sub
输出:
某个函数 - 触发事件
我的处理程序 - 开始睡眠5秒钟
我的处理程序 - 醒来
某个函数 - 事件之后