c# - 处理程序覆盖 CancelEventArgs 上的 Cancel 属性

标签 c# events event-handling

CancelEventArgs提供一个名为 Cancel 的属性,不同的事件处理程序可以设置它来告诉调用事件的对象是否应该继续执行取消操作。

似乎由于事件是多播委托(delegate),所以事件的简单引发可能会调用两个委托(delegate)。第一个将 Cancel 属性设置为 true,第二个将 Cancel 属性设置为 false。组件/框架“可取消”事件是否支持这些场景并逐个调用每个委托(delegate),并在每一步检查取消标志?引发此类事件的最佳做法是什么?是否只有一个 CancelEventArgs 实例传递给每个代表?是否使用单独的实例?

最佳答案

一个小实验很快表明他们使用了 1 个 Cancel 实例(可能是 EventArgs 对象)。

这有点像赌博,结果取决于附加事件处理程序的顺序。

在 CancelEventArgs 的特殊情况下,我认为正确的模式是将 Cancel 设置为 true 或保留它,因此顺序无关紧要。

关于c# - 处理程序覆盖 CancelEventArgs 上的 Cancel 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/603769/

相关文章:

events - 如何在powershell中异步捕获进程输出?

angular - 父级监听子事件在 Angular2 中不起作用

javascript - 将事件监听器添加到javascript中的音频HTML5标签

javascript - dojo动态连接onclick事件到下拉列表项

c# - 为什么关闭最后一个子窗口会最小化其父窗口?

c++ - 在 BeforeNavigate2 事件中枚举表单

c# - 将文本而不是图标写入系统托盘

javascript - 如何在没有任何元素 id 的情况下检索表中的文本内容

c# - `antecedent` 参数的 `Task.ContinueWith` 参数点?

c# - 如何创建一个产生单一值且永不完成的可观察对象