好记性不如烂笔头——垃圾回收

垃圾回收(GC,Garbage Collection)

资源分为托管资源和非托管资源。托管资源由公共语言运行库处理和回收,无须干预;而非托管资源则须显式释放。

如何释放非托管资源?

方法有二:

1、析构函数

2、实现IDisable接口


析构函数是在对象被回收时触发,因此起不到在指定时点释放的效果;并且可能对性能有负面的影响。因为析构函数会被隐式地翻译为Finalize()方法,但垃圾回收器在回收时会只回收没有Finalize()的内存,而将有这个方法的内存对象标记为“准备终止”,留待下次回收。


实现IDisable接口的,则比较合理,可以随时调用,显式释放。

using(...)方式可以强制调用Disable方法。


GC回收的是垃圾,值类型无须回收,引用类型才需要。没有被引用的引用类型就是垃圾。


posted on 2014-02-21 08:58  左直拳  阅读(134)  评论(0编辑  收藏  举报

导航