2012-09-15 53 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:我尽量不去。 –

回答