Finalize() -この関数は、ガベージ コレクション プロセス中にのみ管理されていないリソース
をクリーンアップします。このメソッドが実際にいつ実行されるかはユーザーにはわかりません。また、ユーザーはこの関数を直接呼び出してメモリをクリーンアップすることもできません。
Dispose() -
IDisposable インターフェイスを実装することにより、ユーザーは UnManaged Resources をクリーンアップでき、リソースがいつ解放されるかを正確に知ることができます。
私の理解では、Finalize() をオーバーライドしてアンマネージド リソースをクリーンアップすることはできません。
これは、管理されていないリソースのクリーンアップに使用される「GC」プロセス専用のシステム プロセスです。
ユーザーが自分でリソースをクリーンアップする必要がある場合は、IDisposable インターフェイスを実装し、Dispose() を明示的に呼び出す必要があります。他の可能性はありません!
管理されていないリソースのクリーンアップのベスト プラクティスは、'USING' ステートメントを使用することです。
質問 1: 私の理解は正しいですか? 私が間違っている場合は、上記のステートメントで私を修正してください。
質問 2: また、知りたかったのですが、 IDisposable インターフェイスを実装し、Dispose() を呼び出すことによって、マネージド リソースをクリーンアップできますか?