C# でのメモリ管理に関する記事をいくつか読んだとき、ファイナライザーのメソッドに戸惑いました。
それらに関連する非常に多くの複雑なルールがあります。たとえば、ファイナライザーがいつ呼び出されるかは誰にもわかりません。ctor のコードがスローされたとしても呼び出されます。CLR は、プログラムがシャットダウンしたときにすべてのファイナライザーが呼び出されることを保証しません。
実生活で使用できるファイナライザーは何ですか?
私が見つけた唯一の例は、GC の開始時にビープ音を鳴らすプログラムでした。
コードでファイナライザーを使用していますか? 良いサンプルがいくつかありますか?
更新:
ファイナライザーは、開発者が IDisposable を介して一部のクラスを常に正しく破棄するようにしたい場合に使用できます。(リンク;スティーブ・タウンゼントに感謝)