(.net)CriticalFinalizerObject - 它到底做了什么?

dev*_*ium 6 .net c# vb.net dispose finalizer

我对这个类的理解是,当你想要确保调用Finalizer(析构函数)或类时,你应该使用它,但是从我做过的几个测试中,它似乎不是真的.如果它不能确保调用dispose方法,还有其他方法吗?例如,如果我想确保运行一些代码来结束我的对象,即使我通过任务管理器关闭我的程序或什么?

Sam*_*ell 8

克里斯布鲁姆以一种我不确定无法成为榜首的方式解释了这个话题.:)

  • "结束过程"结束了这个过程.无论你想跑什么,都为时已晚. (6认同)

Joe*_*orn 4

从我所做的几次测试来看,这似乎不是真的。

.Net 中的终结器是不确定的。 这意味着无法保证终结器何时调用。仅仅因为对象超出范围甚至被释放,并不意味着终结器将立即被调用。垃圾收集器将在未来某个未知的时间处理它。