В TimedLock зачем нужен SuppressFinalize (tl.leakDetector)? - PullRequest
1 голос
/ 09 марта 2010

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

Зачем нужна эта линия?

System.GC.SuppressFinalize (tl.leakDetector);

Я бы подумал, что финализатор не должен подавляться для запуска кода, который предупреждает оставленный монитор.

Очевидно, я смотрю только на отладочную версию.

Спасибо

1 Ответ

1 голос
/ 09 марта 2010

Этот код работает, заставляя финализатор для leakDetector вызывать Debug.Fail, поэтому вы видите проблемы в отладчике, когда этот объект завершается.

Помещая вызов SuppressFinalize (..) в метод Dispose (), он вызывает тот объект, который вызывает Debug.Fail только тогда, когда Dispose НЕ вызывается.

...