由于异常导致事件取消订阅内存泄漏

时间:2012-01-20 21:16:16

标签: .net events exception memory-leaks

我不想通过所有事件取消订阅内存泄漏帖子来查看是否有任何异常处理,所以我正在发布新帖子。

如果我注册了一个带有事件的函数,并且在我取消注册之前发生了异常,那会导致内存泄漏吗?我在调用函数中有一个try / catch,但是在我连接/取消事件的函数中没有,如果我不需要它,我宁愿没有try / catch。

1 个答案:

答案 0 :(得分:1)

对于大多数订阅方法,未取消订阅的事件订阅者将其生命周期延长至事件源的生命周期。如果事件源是短暂的,这将不是问题。如果事件源是长寿的,这可能是一个巨大的问题。最好的习惯用法通常是在IDisposable中解除事件。如果使用“使用”块,将调用Dispose方法,确保事件取消订阅。