我有一个BackgroundWorker
对象,我实例化它以异步方式在后台线程上执行数据库进程。我有DoWor
k和RunWorkerCompleted
的事件处理程序。
我可以说BackgroundWorker
正在处置自己,因为我在MessageBox
事件处理程序中添加了Disposed
。
我的问题是:
是否需要分离事件处理程序以确保清理内存并且没有内存泄漏?
答案 0 :(得分:6)
如果事件发布者被垃圾收集,则无需取消订阅。如果事件订阅者(处理程序委托的目标)在发布者之前需要符合垃圾回收条件,则只需要取消订阅事件。