CriticalFinalizerObject

CriticalFinalizerObject

我在这里看到了这个thread,但没有得到我的任何答案。

据我了解:

总是会回收本地资源!


GC发生时(第二轮之后)
呼叫处置
使用Using
程序崩溃
正常终止程序


那为什么我需要从CriticalFinalizerObject继承呢?

我看不到任何资源都不会被回收的情况。

我想念什么?

最佳答案

CriticalFinalizerObject类确实为“处置/完成”过程增加了一些可靠性。就像防止Thread.Abort()等。


  那为什么我需要从CriticalFinalizerObject继承呢?


使用Safehandle : CriticalFinalizerObject的主要原因是它使您不必处理非托管资源模式。 SafeHandle将非托管资源转换为托管资源,请参见Joe Duffy

我认为,作为应用程序程序员,您不必从CriticalFinalizerObject派生一个类,但是当您必须处理“句柄”时,应使用SafeHandle

10-06 14:26