.NET Frameworkのリソース開放は非常に難解です。 今回は重要メソッドである以下の2つについて説明します。 ・Dispose(リソースを開放できるメソッド、自動で呼ばれることはない) ・Finalize(リソースを何時か開放するメソッド、自動で呼ばれる) 実装時の注意点は以下のとおりです。 ■ Dispose Disposeは複数回呼ばれる可能性があるし、その場合に例外なしに呼び出せるよう実装しなくてはならない。 DisposeとFinalizeは殆ど似たような開放処理になる。しかし、アンマネージリソースの一部は、Disposeの実装とその呼び出しでしか開放できない。 DisposeとFinalizeを両方実装した場合、Dispose内でGC.SuppressFinalizeをする(パフォーマンス上の問題) ■ Finalize スレッドセーフに実装する必要はないし、複数回呼ばれ