Trong VB .NET, khi bạn gọi RaiseEvent X(), là hàm xử lý sự kiện X được xử lý không đồng bộ hoặc đồng bộ. Tôi đã có ấn tượng rằng RaiseEvent và việc xử lý sự kiện là Synchronous trừ khi được tạo ra một cách explictly trên một thread khác. Tôi đã được nói khác.Trình xử lý sự kiện có được xử lý không đồng bộ không?
5
A
Trả lời
6
Sự kiện được nâng lên đồng bộ theo mặc định. Vì MulticastDelegates
được thiết kế để hỗ trợ lời gọi không đồng bộ, có thể gọi các đại biểu trong danh sách yêu cầu của sự kiện không đồng bộ nhưng đây không phải là hành vi mặc định.
2
tôi chỉ làm một số thử nghiệm cũng ...
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
Output:
Một số chức năng - Nâng cao tổ chức sự kiện
Handler My - Bắt đầu từ 5 ngủ thứ hai
Handler My - tỉnh dậy
Một số chức năng - Sau Sự kiện