1. ホーム
  2. c#

[解決済み】FinalizeとDisposeの比較

2022-04-02 03:37:14

質問

なぜ一部の人は Finalize メソッドよりも Dispose メソッドですか?

どのような場面で Finalize メソッドよりも Dispose メソッドとその逆は?

どのように解決するのですか?

の違いについては、すでに他の方が取り上げています。 DisposeFinalize (この Finalize メソッドは言語仕様ではまだデストラクタと呼ばれています)、そのシナリオについて少し補足しておきます。 Finalize メソッドが便利です。

いくつかの型は、使い捨てのリソースを、1回の操作で簡単に使用・廃棄できるようにカプセル化しています。一般的な使い方は、open, read or write, close (Dispose)のようなことが多い。これは using を構成します。

その他はちょっと難しいですね。 WaitEventHandles インスタンスの場合は、あるスレッドから別のスレッドへのシグナルに使用されるため、このような使い方はされません。そこで問題となるのは、誰が Dispose を使用することはできますか?このような型には、安全対策として Finalize このメソッドは、アプリケーションからインスタンスが参照されなくなったときに、リソースが廃棄されることを確認します。