【问题标题】:Event add and remove implementation details事件添加和删除实现细节
【发布时间】:2012-10-28 00:09:11
【问题描述】:

我正在开发具有大量性能关键代码的应用程序。在查看我的代码时,我注意到我也有很多 +=-=on 事件以及许多调用,所以我问自己(现在是你)+=-= 是如何实现的以及它的速度有多快是有很多调用的时候。

【问题讨论】:

标签: c# performance events


【解决方案1】:

从根本上讲,事件是事件委托的列表。添加新事件在性能上类似于调用List<T>.Add()(通常为 O(1)),而删除委托相当于 List<T>.Remove(),即 O(n),其中 n 是列表中的代表人数。

(这并不一定意味着代表实际上是实现并带有List<T>,但性能特征是相同的。)

【讨论】:

  • 因此,当我每次更新添加和删除大量调用时,实际上性能很差。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2013-01-07
相关资源
最近更新 更多