【发布时间】:2009-11-10 10:33:50
【问题描述】:
在 C# 中,我习惯于在 Dispose() 中清除对我的自定义事件的每个订阅,以避免订阅者忘记取消订阅我的事件而导致内存泄漏。
这很简单,只需调用MyEvent = null,因为C# 编译器会自动生成一个委托字段。不幸的是,在 VB.NET 中,似乎没有简单的方法可以做到这一点。我想出的唯一解决方案是编写一个Custom Event,添加调用Delegate.Combine / Delegate.Remove 的自定义添加和删除处理程序,这基本上是C# 编译器所做的。但是,为了能够清除订阅而必须对每个事件都执行此操作对我来说似乎有点“矫枉过正”。
有没有人有其他想法来解决这个问题?谢谢。
【问题讨论】:
标签: vb.net events subscription