多次调用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); } 

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

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