提升事件与调用c#中的函数有不同的性能差异

时间:2013-03-31 19:32:08

标签: c# events

这是一个更实际的理论问题,实际上我没有任何性能问题。

我正在试图找出事件是如何工作的(并推断出使用它们而不是调用函数会导致性能下降)。

事件是否只是一个类,其中包含指向该事件的注册函数的指针列表,或者后面还有更多的事件?

1 个答案:

答案 0 :(得分:1)

当一个事件被引发时,一个多播委托(基本上为在该类型实例上完成的每个.SomeEvent += MySomeEventHandler附加一个新的事件处理程序 - 它真正得到一个新的委托列表,每个{{} 1}},但现在跳过它将执行每个附加的处理程序。因此,在附加多个事件处理程序的每种情况下,都将执行多个方法调用。对于非常低级别的细节,只需查看发生的IL以了解事件发生情况,并将其与将事件更改为常规回调时的情况进行比较。