默认情况下添加/删除执行(default event add/remove implementati

2019-06-25 08:02发布

我期待实现一些额外的逻辑,当事件处理程序被添加或移除的事件。

我知道,在.NET中的默认实现最近改变。

我想保持我的实现尽量靠近默认的实现成为可能。

任何人都可以点我/提供的东西,显示compliler如何实现的事件?

Answer 1:

见这一系列博客文章 。

在C#<4,它在使用简单的委托操作lock秒。

在C#4+,它通过调用使用发烧友无锁算法Interlocked.CompareExchange在一个循环; 看看它在反编译器的更多细节。

如果你确定你的类将不会应用在多个线程使用,你不需要任何的是什么; 你可以简单地使用不同步委托算术。



Answer 2:

不知道这是你在寻找什么,但这篇文章展示了一些添加删除处理程序的.NET内部的。 (还展示了如何获得和处理这些处理程序)

http://www.codeproject.com/Articles/308536/How-to-copy-event-handlers-from-one-control-to-ano

如果你想添加一些逻辑在那里,你会发现本文有趣....



文章来源: default event add/remove implementation