.NET中的垃圾收集器

Gun*_*ner 4 .net asp.net garbage-collection c#-4.0

垃圾收集器如何知道对象和变量超出范围,以便垃圾收集器可以收集它们?

Cas*_*sen 6

简而言之:每个应用程序都有一套根.Roots标识存储位置,这些位置引用托管堆上的对象或设置为null的对象.

当垃圾收集器开始运行时,它假设堆中的所有对象都是垃圾.

垃圾收集器开始遍历根并构建从根可到达的所有对象的图形.

删除所有无法访问的对象(释放内存)

这取自http://msdn.microsoft.com/en-us/magazine/bb985010.aspx - 关于垃圾收集的好文章."有趣"的部分是"垃圾收集算法".这不是一个很长的部分