6

デストラクタで console.WriteLine() を使用して、特定のクラスのインスタンスが確実に解放されるようにしようとしていますが、出力が表示されません。

残っている参照やイベント サブスクリプションを注意深く検索しましたが、何も見つかりませんでした。私自身の正気を保つために、検索を続ける前に、誰かがそれを確認できますか:

GC.Collect();
GC.WaitForPendingFinalizers();

オブジェクトがどんなに小さくても、完全な再利用を強制しますか?

4

1 に答える 1

5

In general, this should clean up most things.

However, if you have code in your finalizers, it's possible that you will need to call GC.Collect() twice, as the first time will cause the finalizers to execute, but the actual memory cannot be cleaned until after the finalizer has completed, which means the subsequent call will catch the object.

于 2012-09-21T17:07:59.703 に答える