0
我正在開發一個應用程序,其中有很多性能嚴重的代碼。在查看我的代碼時,我注意到我有很多關於事件的+=
和-=
有很多調用,所以我問自己(現在是你)如何實現+=
和-=
以及有多少調用時它的速度有多快。事件添加和刪除實現細節
我正在開發一個應用程序,其中有很多性能嚴重的代碼。在查看我的代碼時,我注意到我有很多關於事件的+=
和-=
有很多調用,所以我問自己(現在是你)如何實現+=
和-=
以及有多少調用時它的速度有多快。事件添加和刪除實現細節
基本上,一個事件是一個事件代表的列表。添加新事件在性能上與調用List<T>.Add()
(通常爲O(1))類似,刪除委託相當於List<T>.Remove()
,即O(n),其中n是列表中的委託人數。
(這這麼想的一定意味着代表實際上是實施與蓋下List<T>
,但性能是一樣的。)
因此,當我添加和刪除每個更新的很多invoke時,實際上性能很差。 –
在這裏看到:http://stackoverflow.com/questions/ 10484962/default-event-add-remove-implementation – nieve