多次致电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); }
可以多次调用Dispose()
实例的MyClass
方法吗?
答案 0 :(得分:6)
根据文档:http://msdn.microsoft.com/en-us/library/system.gc.suppressfinalize.aspx,它在对象标题中设置了一些位,因此不应该多次调用它。[/ p>