Vb.net 事件处理程序是否异步处理?

Vb.net 事件处理程序是否异步处理?,vb.net,events,asynchronous,event-handling,Vb.net,Events,Asynchronous,Event Handling,在VB.NET中,调用RaiseEvent X()时,是处理异步或同步处理的事件X的函数。我的印象是RaiseEvent和事件的处理是同步的,除非在另一个线程上明确创建。不过,有人告诉我不是这样。默认情况下,事件是同步引发的。由于设计用于支持异步调用,因此可以异步调用事件调用列表中的委托,但这不是默认行为。我还做了一些测试 Public Sub MyHandler() Handles Complete MsgBox("My Handler - Beginning 5 second sle

在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秒睡眠
我的处理者-醒来
一些事后功能