.net - 如何控制触发事件处理程序的顺序?

标签 .net events

事件处理程序是否按照它们附加到事件的顺序触发?如果不是,我可以对事件处理程序强制执行某种顺序,以便按特定顺序调用它们吗?

最佳答案

假设事件的简单实现(在委托(delegate)字段上使用 += 和 -= ,而委托(delegate)字段又将使用 Delegate.Combine/Remove )然后是的,事件处理程序将按照它们被订阅的顺序被调用。 Delegate.Combine 中有效地提供了保证。文档:

Return value

A new multicast (combinable) delegate with an invocation list that concatenates the invocation lists of a and b in that order.



见我的article about events对于其中的一些示例Delegate.Combine/Remove做(以及幕后发生的事件)。

关于.net - 如何控制触发事件处理程序的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/264196/

相关文章:

C# 从文本文件中的公钥获取 CngKey 对象

c# - 设置 DatagridView 行以关注表单加载

iPhone 开发人员 - 委托(delegate)、通知、取消分配前取消订阅?

Jquery 移动弹出窗口在页面调整大小或滚动时在错误位置重新打开

c# - 当一个事件有多个订阅者时,如何获取每个订阅者的返回值?

javascript - 通过 ajax 动态创建的表破坏了 .on 功能

c# - 将 StreamReader 转换回 pdf

c# - 通用约束需要强制转换

Excel Yield 函数的.NET 实现

Javascript下拉菜单onchange事件仅适用于一种功能