日期:2014-05-20  浏览次数:20855 次

关于垃圾回收机制的问题
Professional CSharp 2008 这本书中有这么一句:
Garbage collection works in .NET because IL has been designed to facilitate the process.
在 C#高级编程 第6版中被翻译为:之所以在.NET中使用垃圾收集器,是因为中间语言已用来处理进程。

请问如何理解这句话。 垃圾收集应该是在程序运行起来才能进行吧,难不成中间语言可以进行,还是说在可以中间语言的代码中编写处理这个问题的方案,但是已经处理进程了,所以用.NET了?

------解决方案--------------------
.net程序启动之后,进程中在会有一个专门处理垃圾回收的线程一直在跑。这个线程是clr自动启动并执行的,程序员不需要关注这个线程,但它是存在的。

用windbg !threads 可以看到这个线程。
------解决方案--------------------
即是说每个进程都有一个负责垃圾回收的线程,不同进程之间的垃圾回收的相互隔离的。