最近看了些帖子,了解了.net资源释放的问题,学习成果如下:
【基本概念】
托管资源:CLR执行的代码,可以把CLR理解成虚拟机(即:与平台和语言都无关),CLR本身提供垃圾回收、类型检查、安全支持等。
非托管资源:操作系统执行的代码,代码必须自己提供垃圾回收、类型检查、安全支持等。
【垃圾回收】
托管:不需人工干预,只需了解CLR如何做这些工作(由GC自动完成),CLR自动调用Finalize方法。
非托管:必须由人工显示释放,c#常用Dispose方法。
【MSDN提供的释放非托管资源的模板】