多次调用SuppressFinalize

Şaf*_*Gür 5 c# garbage-collection suppressfinalize

GC.SuppressFinalize(object)多次呼叫有什么缺点吗?处置模式的
受保护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); }
Run Code Online (Sandbox Code Playgroud)

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

Bar*_*osz 6

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