假设我有一个事件Tick
,我称之为:
public class Test
{
public event Action Tick;
public void Test()
{
Tick();
Console.WriteLine("Tick Finished");
}
}
如果我有大量订阅Tick
的事件,那么运行Test()
的此线程的操作是否会被阻塞,直到它们全部被调用或者是否异步执行此操作?
答案 0 :(得分:4)
所有活动都在阻止。线程执行将被阻止,直到所有注册到此事件的事件处理程序都已执行。
答案 1 :(得分:1)
当Tick()运行时,它将阻止您进一步完成代码。
要向自己证明这一点,请编写一个控制台应用程序来做这件事,该活动有很多订阅者,并观察会发生什么。