http://www.interact-sw.co.uk/iangblog/2004/04/26/yetmoretimedlocking
为什么需要这条线?
System.GC.SuppressFinalize(tl.leakDetector);
我原以为终结器不应该被禁止运行警告左侧监视器的代码。
显然我只关注调试版本。
由于
答案 0 :(得分:1)
该代码正在使leakDetector
的终结器生成一个Debug.Fail,因此当该对象完成时,您会在调试器中看到问题。
通过在Dispose()方法中调用SuppressFinalize(..),它会导致该对象仅在未调用Dispose时触发Debug.Fail。