弱事件 WeakEvent
2010-12-07 16:29 Clingingboy 阅读(700) 评论(0) 编辑 收藏 举报
虽然文章很少,但还是有的.引用一下
http://www.codeproject.com/KB/cs/WeakEvents.aspx
http://www.cnblogs.com/rickiedu/archive/2007/03/15/676021.aspx
http://www.cnblogs.com/Curry/archive/2008/10/30/1322647.html
事件一般都是内存泄露的源泉
建议参考此篇http://www.cnblogs.com/rickiedu/archive/2007/03/15/676021.aspx
情况如下若Window1=>Open Window2,Window2中注册了一个事件在WindowBehavior类,
若关闭Window2然后GC一下就没什么事情了.
如果只有Window2,在程序未关闭之前,那么注册在WindowBehavior中的事件就无法销毁掉,就造成了内存泄露.如果使用了弱引用事件当调用GC的时候,内部会去调用WeakEventManager的方法以释放事件(这个就是.net内部的事情了).
我们所需要做的就是实现WeakEventManager和IWeakEventListener