2

I'm looking to implement some extra logic when event handlers are added or removed to an event.

I'm aware that the default implementation in .net changed recently.

I'd like to keep my implementation as close to the default implementation as possible.

Can anyone point me to/provide something that shows how the compliler implements events?

4

2 回答 2

2

请参阅此系列博客文章

在 C# <4 中,它在 s 中使用了简单的委托操作lock

Interlocked.CompareExchange在 C# 4+ 中,它通过循环调用来使用更高级的无锁算法;在反编译器中查看更多细节。

如果您确定您的类永远不会在多个线程上使用,那么您不需要任何这些;您可以简单地使用非同步委托算术。

于 2012-05-07T15:42:50.347 回答
1

不确定它是否正是您要查找的内容,但本文展示了添加删除处理程序的一些 .NET 内部结构。(还展示了如何获取和操作这些处理程序)

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

如果您尝试在那里添加一些逻辑,您可能会发现这篇文章很有趣......

于 2012-05-08T17:59:51.130 回答