.net 应用程序域之间的内存共享

.net 应用程序域之间的内存共享,.net,appdomain,.net,Appdomain,为每个进程分配一个单独的内存。在.net中,进程可以包含多个应用程序域。如何为每个应用程序域分配内存?它们是否共享进程的公共内存?否不允许它们访问同一内存并共享此内存空间中的对象,当您将对象从一个应用程序域传递到另一个应用程序域时,应编组对象: 在一个应用程序中运行的代码不能直接访问代码或 来自其他应用程序的资源。公共语言运行库 通过阻止中对象之间的直接调用来强制执行此隔离 不同的应用程序域。在域之间传递的对象是 通过代理复制或访问。如果复制了对象,则调用 对对象的访问是本地的。也就是说,调用

为每个进程分配一个单独的内存。在.net中,进程可以包含多个应用程序域。如何为每个应用程序域分配内存?它们是否共享进程的公共内存?

否不允许它们访问同一内存并共享此内存空间中的对象,当您将对象从一个应用程序域传递到另一个应用程序域时,应编组对象:

在一个应用程序中运行的代码不能直接访问代码或 来自其他应用程序的资源。公共语言运行库 通过阻止中对象之间的直接调用来强制执行此隔离 不同的应用程序域。在域之间传递的对象是 通过代理复制或访问。如果复制了对象,则调用 对对象的访问是本地的。也就是说,调用方和对象都是 引用的应用程序在同一应用程序域中。如果对象是 通过代理访问,对对象的调用是远程的。在这个 在这种情况下,调用方和被引用的对象处于不同的位置 应用程序域跨域调用使用相同的远程调用 作为两个进程之间或两台机器之间的调用的基础结构。 因此,被引用对象的元数据必须是 可用于两个应用程序域,以允许调用方法 JIT编译正确。如果调用域无权访问 如果要调用对象的元数据,编译可能会失败 但System.IO.FileNotFound类型除外


在32位计算机上,如果可用ram为4GB,CLR将为应用程序分配1.5 GB到2GB。那么这个内存是如何共享的。是否每个应用程序域都将获得2GB?