在那儿
一个垃圾收集器用于整个系统
登录的每个用户的一个垃圾收集器实例
每个运行的.NET应用程序的一个垃圾收集器
或者不是上述(请解释)?
每个.NET进程都有一个GC线程,因此每个进程有一个堆.但是,对象将映射到各个AppDomain,以提供进程隔离优势.虽然进程中可以有多个AppDomain,但默认情况下每个进程只有一个.
这意味着,对于终端服务环境中的应用程序(称为MyApp.exe)的典型部署,用户正在运行的.NET应用程序的不同实例将分别具有独立堆和活动内存管理.更重要的是,终端服务会话本身代表了各种内存边界,因为当用户注销时会卸载会话(http://msdn.microsoft.com/en-us/library/aa383496(VS.85).aspx) .
下面说明了如何为每个终端服务会话加载MyApp.exe,并解释了一些可能影响会话内存可用性和性能的设置:http://blogs.technet.com/askperf/archive/2007/07/ 24 /会话的桌面和窗口,stations.aspx
有关更多详细信息,请参阅Jon Skeet的回复:终结器线程的范围是什么 - 每个应用程序域或每个进程?
此外,以下文章解释了Microsoft如何允许并行CLR实例,以便可以同时运行多个版本的CLR.这适用于Silverlight:http://msdn.microsoft.com/en-us/magazine/cc721609.aspx
此外,似乎所有未来版本的CLR都支持此功能:http://blogs.msdn.com/davbr/archive/2008/11/10/new-stuff-in-profiling-api -用于-即将-CLR-4-0.aspx