В TimedLock зачем нужен SuppressFinalize(tl.leakDetector)?
http://www.interact-sw.co.uk/iangblog/2004/04/26/yetmoretimedlocking
Зачем нужна эта линия?
System.GC.SuppressFinalize (tl.leakDetector);
Я бы подумал, что финализатор не должен подавляться для запуска кода, который оповещает оставленный монитор.
Очевидно, я смотрю только на отладочную версию.
Спасибо
1 ответ
Решение
Этот код работает, делая финализатор для leakDetector
вызвать Debug.Fail, поэтому вы видите проблемы в отладчике, когда этот объект завершен.
Помещая вызов SuppressFinalize(..) в метод Dispose(), он вызывает тот объект, который вызывает Debug.Fail только тогда, когда Dispose НЕ вызывается.