1. .NET资源分托管资源和非托管资源,对于托管资源,.NET GC可以很好的回收无用的垃圾,而对于非托管(例如文件访问,网络访问等)需要手动清理垃圾(显式释放). 2. 非托管资源的释放,.NET提供了两种方式: 1).Finalizer:写法貌似C++的析构函数,本质上却相差甚远.Finalizer是对象被GC回收之前调用的终结器,初衷是在这里释放非托管资源,但由于GC运行时机的不确定性,通常会导致非托管资源释放不及时.另外,Finalizer可能还会有意想不到的副作用,比如:被回收的对象…