【问题标题】:Event unsubscription memory leak due to exception由于异常而导致的事件退订内存泄漏
【发布时间】:2012-02-15 09:42:58
【问题描述】:

我不想浏览所有事件退订内存泄漏帖子,看看是否有任何处理异常的帖子,所以我正在发一个新帖子。

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

【问题讨论】:

    标签: .net events exception memory-leaks


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 2014-03-15
      相关资源
      最近更新 更多