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