默认事件添加/删除实现

本文关键字:删除 实现 添加 事件 默认 | 更新日期: 2023-09-27 18:33:29

我希望在向事件添加或删除事件处理程序时实现一些额外的逻辑。

我知道 .net 中的默认实现最近发生了变化。

我想让我的实现尽可能接近默认实现。

任何人都可以指出我/提供一些显示编译器如何实现事件的东西吗?

默认事件添加/删除实现

请参阅此系列博客文章。

在 C# <4 中,它以 lock s 为单位使用简单的委托操作。

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

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

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

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

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