ファイナライザを使用しない方が良い理由。
class Example : System.IDisposable
{
private bool disposed = false;
~Example()
{
Dispose( false );
}
public void Dispose()
{
Dispose( true );
// このインスタンスのファイナライザが呼び出されないようにする
System.GC.SuppressFinalize( this );
}
private void Dispose( bool disposing )
{
if( !this.disposed )
{
if( disposing )
{
// マネージ リソースを解放する
}
// アンマネージ リソースを解放する
this.disposed = true;
}
}
}
IDisposable インターフェイス (System) - MSDN