1,C#的垃圾回收机制

C#的垃圾回收机制不是基于引用计数的,而是基于对象是否可到达。该机制的运作过程是:CLR 会建立一个对象图,代表堆上可达的每一个对象,如果在一次垃圾回收过程中,某个对象在该对象图上没有root(即没有任何其他对象依赖于它),则对象是不可达对象,会被标记为垃圾,从而会被终结,从内存中清除。 微软的回收算法使用对象代,用于终结对象的辅助线程和专门承载大对象的托管堆进行优化以提高垃圾回收机制的效率。

2,终结过程

Finalize() 的作用是保证.NET对象能在垃圾回收[……]

更多