4
多次呼叫GC.SuppressFinalize(object)
有什么缺点吗?
保护Dispose(bool)
方法配置模式检查之前是否被调用,但是在公众Dispose()
方法没有这样的检查。多次呼叫SuppressFinalize
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (_Disposed)
return;
if (disposing)
{
// Cleanup managed resources.
}
// Cleanup unmanaged resources.
_Disposed = true;
}
~MyClass() { Dispose(false); }
它是确定调用MyClass
实例多次的Dispose()
方法?
除非您没有其他选择,否则不要打扰GC。 – Leri
我想说明一件事情:如果您需要处理非托管资源(或者如果您依赖最终确定运行臃肿的缓存方案),则只需要终结器。 – usr
@PLB:我尽量不去。 –