2012-10-27 63 views
0

我正在開發一個應用程序,其中有很多性能嚴重的代碼。在查看我的代碼時,我注意到我有很多關於事件的+=-=有很多調用,所以我問自己(現在是你)如何實現+=-=以及有多少調用時它的速度有多快。事件添加和刪除實現細節

+1

在這裏看到:http://stackoverflow.com/questions/ 10484962/default-event-add-remove-implementation – nieve

回答

2

基本上,一個事件是一個事件代表的列表。添加新事件在性能上與調用List<T>.Add()(通常爲O(1))類似,刪除委託相當於List<T>.Remove(),即O(n),其中n是列表中的委託人數。

(這這麼想的一定意味着代表實際上是實施與蓋下List<T>,但性能是一樣的。)

+0

因此,當我添加和刪除每個更新的很多invoke時,實際上性能很差。 –