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:我儘量不去。 –