Ben*_*ale 17 c# wpf weak-events
我目前正在学习WPF,并且偶然发现了弱事件的概念,但我真的很想"得到它".我已经在Stackoverflow上阅读了无数文章并查看了代码示例,但它并没有陷入其中.
这是我的困境:
因此,从上面我了解事件的使用如何导致内存泄漏以及为什么需要弱参考模式但阻止我理解的是弱事件模式如何实际实现这一目标?它有什么不同的做法?
当然,即使有一个管理事件的类,它仍然必须订阅和取消订阅源处理器的处理程序,因此引用必须存在,给出了使用事件的标准方法的相同问题.
有人请向我解释一下我遗漏或误解的基本概念,并帮助我"搞"弱事件模式.
Chr*_*ain 18
您缺少的是弱事件(使用弱引用,后者又使用GCHandle)正在利用内置CLR行为来处理需要访问对象的特定情况,而不需要对其进行强引用 -是的,它们不受您的应用程序代码所遵循的正常"规则"的约束.
见http://sankarsan.wordpress.com/2008/08/09/weak-references/
在幕后,WeakEventManager持有对事件订阅者的弱引用.如果订阅者在事件发生之前恰好是GC'd,那么WeakEventManager只是耸了耸肩并且说"好吧,那家伙已经死了,我只是打算从现在开始尝试通知他这个事件"
归档时间: |
|
查看次数: |
2969 次 |
最近记录: |