3

我的基类中有一些事件,我想在 IDisposable 或 Finalizer 中应用以下模式。

var onCategorizedMessage = this.OnCategorizedMessage.GetInvocationList().ToList();
foreach (var item in onCategorizedMessage)
    this.OnCategorizedMessage -= item;

我会在每个事件中重复此代码一次。

这是处理取消订阅事件以防止内存泄漏的合理且可靠的方法吗?

4

1 回答 1

0

无需使用foror foreach,因为您可以访问支持字段(存储代表),您只需要这样做:

this.OnCategorizedMessage = null;

有关更多信息,您可以在此处查看:http: //www.codeproject.com/Articles/864690/Simplifying-Events-in-NET

于 2015-01-30T08:09:02.527 回答