使い捨ての物は使い終わったら処分しなければならないことは誰もが知っています。問題は次のとおりです。Windowsデスクトップアプリケーション(WPFやWinFormsなど)の存続期間全体にわたって使い捨てオブジェクト(データベースコンテキストなど)を使用している場合:アプリケーションのシャットダウンイベントでそのオブジェクトを破棄する必要があります(なぜ、いつ、そうでない場合)?
1 に答える
0
原則として、アプリケーションの存続期間中は使い捨てのオブジェクトを使用しないようにする必要があります。データベースコンテキストなどの多くのオブジェクトは、そのスコープでは使用しないでください。
ただし、実際にそれを行う必要がある場合は、オブジェクトがIDisposableパターンを「適切に」実装しているかどうかによって異なります。使い捨てオブジェクトがファイナライザーを実装している場合は、呼び出しなくても、アプリケーションの終了時に破棄されますDispose
。オブジェクトがファイナライザーを実装していない場合、リークするリソースに問題がない限り、アプリケーションのシャットダウン時にオブジェクトを破棄する必要があります。たとえば、プロセスの終了時にシャットダウンされるメモリリークが発生する場合、それを解放する必要はありません。イベントのサブスクライブを解除するだけの場合は、実行する必要はありません。不明な場合メソッドで正確にリリースされているものについてはDispose
、安全でとにかく呼び出す必要があります。
于 2013-02-11T17:16:51.257 に答える