繁体   English   中英

调用事件时,事件是阻止还是非阻止?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM