只要听众需要,就可以使用弱事件模式 注册一个事件,但监听器没有明确知道何时 取消注册。
A sample code here说明在使用WeakEventManager
时,未明确调用RemoveHandler
会导致内存泄漏。
所以我的问题是,为什么方法RemoveHandler
甚至存在于WeakEventManager
类中?这不是完全没必要吗?什么时候需要?
答案 0 :(得分:2)
不完全没必要吗?
没有。如果没有RemoveHandler
方法,您应该如何(明确地)取消订阅?
什么时候需要?
每当您想要明确地取消订阅事件订阅时。
如果您不打电话给RemoveHandler
,事件处理将继续,直到垃圾收集器收集监听器。