•
Finalizer
会将对象的代龄延长,使无效的对象
长时间存在于托管堆中,给托管堆带来内存负
担
•
•
目的:避免
Finalizer
的弊端,尽可能早地清理
非托管资源
interface class IDisposable
{
void Dispose();
};
•
程序员是这个世界上忘性最大的动物?
•
Dispose
模式:
Dispose+Finalize
双保险
•
设置一个标志位来防止多次资源清理动作
•
在
Dispose
方法中调用
System.GC::SuppressFinalize
以告知垃圾
收集器不再需要调用
Finalize
,从而减轻对象
的负担