Pau*_*ich 8 .net wpf memory-leaks inotifypropertychanged
简而言之......这是一个大型的WPF项目
我有一个实施的"患者"课程INotifyPropertyChanged.当我处理这个类时,我正在检查它是否PropertyChangedEventHandler为null,如果没有将它运行到一个ListenerDetector记录监听器的类,那么我们可以跟踪它们并清理泄漏.患者确实有一些绑定到WPF元素的属性以及PropertyChanged用于监视更改的其他对象.
处理完其他所有内容后,我的日志结果如下:
记录:患者仍然附有以下听众: -
System.ComponentModel.PropertyChangedEventManager
问题:何时PropertyChangedEventManager创建?
如果Patient.PropertyChangedEventHandler设置为null并因此断开连接PropertyChangedEventManager是否有任何方法可以重新创建管理器并让它Patient.PropertyChangedEventHandler再次收听?请不要问为什么会发生这种情况,这是一个紧张的地方:-(
它PropertyChangedEventManager由WPF创建,以支持绑定到任何实现的类INotifyPropertyChanged.一旦绑定到任何实现的类,它就会被创建和使用INotifyPropertyChanged.
话虽这么说,它是WeakEventManager模式的一个实现.虽然它仍然显示附加的侦听器,但要意识到此侦听器是使用弱事件模式附加的.一旦发生完整的垃圾收集,这将会消失,因为它使用弱引用来保存订阅.因此,此特定订阅不应该是(长期)内存泄漏的原因.
| 归档时间: |
|
| 查看次数: |
2213 次 |
| 最近记录: |