投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/4/25 04:08:34
neptuneさんの投稿に対して追記返信。

> やはり、デストラクタやformのformcloseイベントとか、Disposedイベントで処理しなければ
> 駄目なんでしょうか?

まじめに考えると、これが結構ややこしいところで…。
http://msdn.microsoft.com/ja-jp/library/0s71x931.aspx


Finalize にもデメリットはありますので、使いどころを間違えると逆効果です。

ファイナライザを実装すると、メモリ回収までのサイクルが長期化するため、
結果的に、メモリ使用量の増加につながってしまう事もありえたりします。

http://msdn.microsoft.com/ja-jp/library/ms998547.aspx
》『必要でない限り Finalize を実装しない』
》ファイナライザを必要としていないクラスでファイナライザを実装すると、
》ファイナライザ スレッドとガベージ コレクタへの負荷が増加します。
》ファイナライゼーションが必要でない限り、ファイナライザやデストラクタは
》実装しないようにしてください。(以下略)