【发布时间】:2014-06-16 07:51:45
【问题描述】:
考虑以下代码(来自性能报告):
这是属性通知侦听器组件的一部分。方法OnItemPropertyChanged 是带有PropertyChangedEventHandler 签名的私有实例绑定方法。此方法被调用了大约 100.000 次,并导致应用程序出现严重延迟。
是否存在与(取消)订阅事件相关的性能注意事项?有没有解释为什么这会导致这样的性能下降?
【问题讨论】:
-
我认为您的问题在于此方法被调用了大约 100.000 次,而不是取消订阅本身。也许你应该考虑重新设计
-
为什么这个事件被调用了 100,000 次?
-
您的所有项目都已更改?如果这是真的,你真的有问题;否则在你真正需要的地方调用它
-
内存中有 100k 个项目,每个项目都有一个侦听器。
-
如果这 100k 项中的每一项都需要调用
PropertyChanged事件,我认为您应该重新考虑您的应用程序的设计
标签: c# event-handling