我期待实现一些额外的逻辑,当事件处理程序被添加或移除的事件。
我知道,在.NET中的默认实现最近改变。
我想保持我的实现尽量靠近默认的实现成为可能。
任何人都可以点我/提供的东西,显示compliler如何实现的事件?
我期待实现一些额外的逻辑,当事件处理程序被添加或移除的事件。
我知道,在.NET中的默认实现最近改变。
我想保持我的实现尽量靠近默认的实现成为可能。
任何人都可以点我/提供的东西,显示compliler如何实现的事件?
见这一系列博客文章 。
在C#<4,它在使用简单的委托操作lock
秒。
在C#4+,它通过调用使用发烧友无锁算法Interlocked.CompareExchange
在一个循环; 看看它在反编译器的更多细节。
如果你确定你的类将不会应用在多个线程使用,你不需要任何的是什么; 你可以简单地使用不同步委托算术。
不知道这是你在寻找什么,但这篇文章展示了一些添加删除处理程序的.NET内部的。 (还展示了如何获得和处理这些处理程序)
http://www.codeproject.com/Articles/308536/How-to-copy-event-handlers-from-one-control-to-ano
如果你想添加一些逻辑在那里,你会发现本文有趣....