c# - C# 事件是同步的吗?

标签 c# .net events delegates

这个问题有两个部分:

  1. 引发一个事件会阻塞线程,还是它会异步开始执行 EventHandlers 而线程会同时继续运行?

  2. 各个 EventHandlers(订阅事件)是一个接一个地同步运行,还是异步运行且不能保证其他人不会同时运行?

最佳答案

这是一个一般性的答案,反射(reflect)了默认行为:

  1. 是的,如果订阅事件的方法不是异步的,它会阻塞线程。
  2. 它们一个接一个地执行。这还有另一个转折点:如果一个事件处理程序抛出异常,则不会执行尚未执行的事件处理程序。

话虽如此,每个提供事件的类都可以选择异步实现其事件。 IDesign提供了一个名为 EventsHelper 的类这简化了这一点。

[注意]此链接要求您提供电子邮件地址以下载 EventsHelper 类。 (我没有任何隶属关系)

关于c# - C# 事件是同步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106454/

相关文章:

php - Magento 在保存客户地址时会发送事件吗?

c# - 在子页面中,我想找到母版页的内容占位符并向其添加文本。我怎样才能做到这一点?

c# - 按相关表数过滤查询

c# - 无法使用 vb.net 在 asp.net mvc 3 中的区域中加载 View

c# - EF 6 数据库第一个存储过程

c# - Storyboard应用于许多元素

android - 如何检测手指是否已经在启动新 Activity 的按钮上

javascript - onkeyup 或 onkeypress javascript 事件问题 - 密码状态更新

c# - 桌面应用程序 + SQLite - 版本 = 1.0.65.0 与版本 1.0.104.0

c# - 解析 XML 字符串时出现问题。应该很简单