C# 在TimedLock中,为什么需要SuppressFinalize(tl.leakDetector)?

C# 在TimedLock中,为什么需要SuppressFinalize(tl.leakDetector)?,c#,.net,garbage-collection,suppressfinalize,C#,.net,Garbage Collection,Suppressfinalize,为什么需要这条线 系统GC检测器(tl泄漏检测器) 我认为不应该禁止终结器来运行向剩余监视器发出警报的代码 显然,我只是在看调试版本 感谢使leakDetector的终结器导致调试失败,代码正在工作,因此当该对象被终结时,您会在调试器中看到问题 通过将SuppressFinalize(..)调用放在Dispose()方法中,它将导致该对象仅触发Debug.Fail,而不调用Dispose。使leakDetector的终结器导致Debug.Fail,因此当该对象被终结时,您将在调试器中看到问题 通

为什么需要这条线

系统GC检测器(tl泄漏检测器)

我认为不应该禁止终结器来运行向剩余监视器发出警报的代码

显然,我只是在看调试版本


感谢

使
leakDetector的终结器
导致调试失败,代码正在工作,因此当该对象被终结时,您会在调试器中看到问题


通过将SuppressFinalize(..)调用放在Dispose()方法中,它将导致该对象仅触发Debug.Fail,而不调用Dispose。

使
leakDetector
的终结器导致Debug.Fail,因此当该对象被终结时,您将在调试器中看到问题

通过将SuppressFinalize(..)调用放在Dispose()方法中,它将导致该对象仅触发Debug.Fail,而不调用Dispose