■No73423 (魔界の仮面弁士 さん) に返信
> DataTable や DataSet は IDisposable.Dispose を実装していますが、Dispose を呼ばなくても問題ありません。
Dispose メソッドの実装
http://msdn.microsoft.com/ja-jp/library/vstudio/fs2xkftw(v=vs.100).aspx
上記の MSDN ライブラリによると、
"Dispose メソッドは、破棄するオブジェクトの SuppressFinalize メソッドを
呼び出す必要があります。SuppressFinalize を呼び出すと、オブジェクトが終
了キューに置かれている場合は、そのオブジェクトの Finalize メソッドの呼び
出しは行われません。Finalize メソッドの実行は、パフォーマンスに影響を与
えることを覚えておいてください。"
とのことです。
なので、そのページのサンプルコードにあるように Dispose() メソッドが以下
のように定義されているとすれば、GC.SuppressFinalize(this) によって「パ
フォーマンスに影響を与える」という Finalize メソッドの実行を避けることが
できるということは無いのでしょうか?
public void Dispose()
{
Dispose(true);
// Use SupressFinalize in case a subclass
// of this type implements a finalizer.
GC.SuppressFinalize(this);
}
外していたら失礼しました。
|