gpt4 book ai didi

c# - 使用 GetInvocationList 取消订阅事件处理程序

转载 作者:行者123 更新时间:2023-11-30 18:38:40 24 4
gpt4 key购买 nike

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

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

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

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

最佳答案

不需要使用 forforeach 来完成,因为您可以访问支持字段(存储委托(delegate)),您只需要这样做:

this.OnCategorizedMessage = null;

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

关于c# - 使用 GetInvocationList 取消订阅事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com