c# - 取消订阅事件

标签 c# .net winforms events

在 WinForms 中,我可以使用 IDisposable 实现来取消订阅表单事件(例如:Activated、Load、ContextMenuChanged ......)以帮助垃圾回收吗?


取消订阅 MSDN

要防止在引发事件时调用您的事件处理程序,请取消订阅该事件。为了防止资源泄漏,您应该在处理订阅者对象之前取消订阅事件。在您取消订阅事件之前,作为发布对象中事件基础的多播委托(delegate)具有对封装订阅者事件处理程序的委托(delegate)的引用。只要发布对象持有该引用,垃圾回收就不会删除您的订阅者对象。

最佳答案

是的,但是,根据事件的数量,我认为这将属于微优化类别。

关于c# - 取消订阅事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18849975/

相关文章:

c# - 如何将消息从子用户控件传递给父级

c# - 如何将谓词生成器与 linq2sql 和 OR 运算符一起使用

c# - 在C#中获取进程信息的权限

c# - 从数据库 Linq 获取最小值和最大值到 MVC 中的 Sql 查询?

c# - 为什么我的 Web 应用程序编译但抛出 Type 'BitmapImage' is not defined。调试时出错?

vb.net - 如何设置表单具有透明背景

c# - 在 C# 中将一长串 int[16] 转换为 16 long int[] 的最快方法是什么

.net - 调查从服务器通知 WPF 客户端的解决方案

c# - 重命名文件自己打开

visual-studio-2008 - 在 Windows 窗体设计器中将控件与窗体的中心对齐