委托会导致内存泄漏吗?
我的意思是,例如,如果一个类A包含一个ADelegate,并且后者指向B类的BMethod,这是否会防止GC收集A类或B类?
如果是这样,我们如何“释放”委托(设置ADeletate = Nothing / null?)
您对此有什么评论:
//Class A Finalize, containing ADelegateInstance as ADelegate'
protected override void Finalize()
{
ADelegateInstance =
(ADelegate)System.Delegate.RemoveAll(
ADelegateInstance, ADelegateInstance);
ADelegateInstance = null;
base.Finalize();
}
'Class A Finalize, containing ADelegateInstance as ADelegate'
Protected Overrides Sub Finalize()
ADelegateInstance = _
CType(System.Delegate.RemoveAll(ADelegateInstance, ADelegateInstance), _
ADelegate)
ADelegateInstance = Nothing
MyBase.Finalize()
End Sub
System.Delegate.RemoveAll(myDelegate, myDelegate)
会有帮助? - serhio