日期:2014-05-17  浏览次数:20787 次

为什么在Dispose内部要调用GC.SuppressFinalize(true)?
我看到很多实现public void Dispose()的代码都是这样的:

   Dispose(true);//自定义了一个private的Dispose(bool)函数
   GC.SuppressFinalize(true);//这个不调用又会怎么样呢?

问题: 在Dispose函数内部一定要调用GC.SuppressFinalize吗?
如果一定要调用,那么传入true和传入false会有什么不同的效果么?

------解决方案--------------------
对于这种控制台的小程序,有时候无论你怎么写,包括写GC.Collect(),还是在进程退出的时候才回收。