[英]Are events blocking or non-blocking when you call them?
假设我有一个事件Tick
,我称之为:
public class Test
{
public event Action Tick;
public void Test()
{
Tick();
Console.WriteLine("Tick Finished");
}
}
如果我订阅了Tick
大量事件,运行Test()
线程的操作将被阻塞,直到它们全部被调用,或者它异步执行了吗?
所有事件都被阻止。 线程执行将被阻塞,直到已注册到该事件的所有事件处理程序都已执行。
在Tick()运行时,它将阻止您进一步浏览代码。
为了向自己证明这一点,编写一个控制台应用程序来做到这一点,该应用程序有很多事件的订阅者,然后观察发生了什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.