1

http://www.interact-sw.co.uk/iangblog/2004/04/26/yetmoretimedlocking

なぜこの行が必要なのですか?

System.GC.SuppressFinalize(tl.leakDetector);

残りのモニターにアラートを出すコードを実行するために、ファイナライザーを抑制すべきではないと思いました。

明らかに、私はデバッグバージョンのみを見ています。

ありがとう

4

1 に答える 1

1

このコードはleakDetector、Debug.Fail の原因となるファイナライザーを作成することで機能しているため、そのオブジェクトがファイナライズされると、デバッガーで問題が発生します。

Dispose() メソッドに SuppressFinalize(..) 呼び出しを配置することで、Dispose が呼び出されていない場合にのみ、そのオブジェクトが Debug.Fail をトリガーするようになります。

于 2010-03-09T19:40:15.057 に答える