2012-09-15 55 views
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()方法?

+0

除非您沒有其他選擇,否則不要打擾GC。 – Leri

+0

我想說明一件事情:如果您需要處理非託管資源(或者如果您依賴最終確定運行臃腫的緩存方案),則只需要終結器。 – usr

+0

@PLB:我儘量不去。 –

回答