6

GC.SuppressFinalize(object)多次调用有什么缺点吗?dispose 模式的
受保护Dispose(bool)方法检查它是否在之前被调用,但在公共方法中没有这样的检查。Dispose()

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); }

Dispose()实例的方法可以MyClass多次调用吗?

4

1 回答 1

7

根据文档: http: //msdn.microsoft.com/en-us/library/system.gc.suppressfinalize.aspx,它在对象标头中设置了一些位,因此多次调用它不应该有任何影响。

于 2012-09-15T10:37:23.667 回答