Karl绝对正确,使用后无需将对象设置为null。如果实现了一个对象IDisposable
,只需确保IDisposable.Dispose()
在处理完该对象(包装在try
..finally
或using()
块中)后调用即可。但是,即使您不记得要调用Dispose()
,对象上的finaliser方法也应该在Dispose()
为您调用。
我认为这是一种很好的治疗方法:
和这个
尝试重新猜测GC及其管理策略没有任何意义,因为它是自调整的且不透明。在此处,关于Dot Net Rocks上的Jeffrey Richter的内部工作方式进行了很好的讨论:Windows Memory Model和Richters的Crey via C#第20章中的Jeffrey Richter有很好的论述: