私の知る限り、管理されていないリソースを削除してメモリを解放するためにGCがコレクション操作を実行することを知っています。これは暗黙のクリーンアップと呼ばれます。また、「USING」キーワードを使用することで明示的なクリーニングを行うことができますが、GC がマネージド リソースを解放する方法には疑問があります。
質問する
1604 次
1 に答える
2
GC がマネージド リソースをクリーンアップするために特別なことをする必要はありません。管理対象リソースへの参照がなくなった後、GC はそれをクリーンアップします。
マネージド リソースがアンマネージド リソースを所有している場合は、IDisposableインターフェイスを実装Dispose
し、アンマネージド リソースを明示的にクリーンアップするメソッドを呼び出すことができます。ステートメントを使用すると、例外が発生した場合でも、コードがブロック内にusing
存在する場合に自動的に Dispose を呼び出すため、このインターフェイスを非常に簡単に使用できます。using
ガベージ コレクションに関する MSDN ドキュメントを参照してください。
編集:上記のコメントに基づいています。
ファイナライザー (~MyClass() など) を定義することでオーバーライドできますObject.Finalize
が、GC によっていつ呼び出されるかはわかりません。一般に、IDisposable が推奨されます。Finalizer と Dispose の詳細については、こちらをご覧ください。
于 2012-06-15T07:06:17.473 に答える