CLR破坏.NET对象

NSN*_*NSN 2 .net clr

没有任何dispose()或者finalize模式被clr破坏的.NET对象怎么样?它是通过Object Finalize方法清除的!

And*_*are 7

不,如果对象没有声明显式终结器,它永远不会被添加到可释放队列 - 它的内存只是回收.

这是你不应该宣布终结者的原因之一,除非你真的需要一个终结者.任何具有终结器的对象都需要完全收集GC的两次通过.


来自Object.Finalize:

Object.Finalize默认情况下什么都不做 必要时,它必须由派生类覆盖,因为如果必须运行Finalize操作,则在垃圾收集期间进行回收往往需要更长的时间.

另外,我建议您查看Microsoft .NET Framework中的垃圾收集:自动内存管理.