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



