【发布时间】:2012-10-28 00:09:11
【问题描述】:
我正在开发具有大量性能关键代码的应用程序。在查看我的代码时,我注意到我也有很多 += 和 -=on 事件以及许多调用,所以我问自己(现在是你)+= 和 -= 是如何实现的以及它的速度有多快是有很多调用的时候。
【问题讨论】:
标签: c# performance events
我正在开发具有大量性能关键代码的应用程序。在查看我的代码时,我注意到我也有很多 += 和 -=on 事件以及许多调用,所以我问自己(现在是你)+= 和 -= 是如何实现的以及它的速度有多快是有很多调用的时候。
【问题讨论】:
标签: c# performance events
从根本上讲,事件是事件委托的列表。添加新事件在性能上类似于调用List<T>.Add()(通常为 O(1)),而删除委托相当于 List<T>.Remove(),即 O(n),其中 n 是列表中的代表人数。
(这并不一定意味着代表实际上是实现并带有List<T>,但性能特征是相同的。)
【讨论】: