.net – 了解Windows中的AppDomains
发布时间:2020-12-14 04:01:33 所属栏目:Windows 来源:网络整理
导读:我想更好地了解appDomains.据我所知,Windows在一个进程中运行所有应用程序.每个应用程序都封装在它自己的对象中,该对象位于此进程中.此对象还包含一些无法共享的全局变量.进程中的所有对象都不能彼此共享任何数据.我理解的appDomain是一个位于windows进程中
我想更好地了解appDomains.据我所知,Windows在一个进程中运行所有应用程序.每个应用程序都封装在它自己的对象中,该对象位于此进程中.此对象还包含一些无法共享的全局变量.进程中的所有对象都不能彼此共享任何数据.我理解的appDomain是一个位于windows进程中的特殊对象.它所做的只是保留对分配给它的所有程序集的引用.如果有人可以详细说明或纠正我,如果我错了.任何好的资源也都可以.
解决方法
听起来这里发生的事情是,你在AppNet中的概念与.Net中的实现相混淆.
让我们先从概念开始.您可以在概念上将其视为与线程或进程相同的事物.启动过程相当昂贵,但在各个进程拥有的内存之间提供高度保护/分离.线程启动起来相当便宜,但对跨线程内存访问的保护较少. AppDomain本质上为线程带来了一些进程级保护. 你可以用这个概念做一些有趣的事情.例如,进程不限于单个AppDomain,因此您可以让多个应用程序共享一个进程,并且仍然可以确定这两个应用程序都不会干扰或崩溃另一个进程.但主要原因与实施有关. 正在管理的.Net语言采用内存模型设计,以便管理员可以确定应用程序外部的任何内容都不会不恰当地干扰应用程序的内存.它们也是使用单独的线程进行垃圾收集而设计的,这导致我们将应用程序作为一个进程中的一个线程运行.即使您只使用一个线程,也可以启动更多,或加载其他程序集.那么,AppDomain的目的是在进程中封装你的应用程序(及其内存).它可以实现为保持对程序集的引用的对象,但这与概念是分开的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- 为什么FileStream和CopyFile比Windows资源管理器
- windows-7 – Windows 7无人值守安装 – 不是’无
- windows-server-2008 – Microsoft DNS:为同一个
- windows-server-2003 – 保存并清除事件日志
- windows-server-2008 – 如何让WSUS对用户的侵入
- 当使用cx_Freeze和tkinter时,我得到:“DLL加载失
- windows-phone-7 – Windows Phone 7 WebRequest
- windows-server-2008 – IIS可以从GPU核心创建线
- windows – 按GUID搜索AD
- 独立Windows .exe与安装程序有什么好处?
热点阅读