应用程序域(AppDomain)浅析
在以前传统的开发中我们都知道,一个应用程序对应一个进程,并为该进程指定虚拟内存,由操作系统来映射实际的物理内存,有效的维护了进程之间的安全性。但另一方面,每一个进程都会消耗一定的系统资源,降低了性能,并且进程间的通信也比较麻烦。在.Net中推出了一个新的概念:应用程序域(AppDomain)。可以理解成很多应用程序域都可以运行在同一个.NET的进程中,可以降低系统消耗,同时不同的域之间互相隔离,在安全性方面有保障。另外对于同一个进程内不同域之间的通信也相对简单一点。
应用程序域涉及的内容很多,本文就简要描述以下两个方面:
1、如何创建、卸载域
2、如何实现域间的通信
一、如何创建、卸载域
在.NET中提供了AppDomain类为执行托管代码提供隔离、卸载和安全边界。
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1http://www.cnblogs.com/Images/OutliningIndicators/None.gifAppDomainSetupinfo=newAppDomainSetup();
2http://www.cnblogs.com/Images/OutliningIndicators/None.gifinfo.LoaderOptimization=LoaderOptimization.SingleDomain;
3http://www.cnblogs.com/Images/OutliningIndicators/None.gif
4http://www.cnblogs.com/Images/OutliningIndicators/None.gifAppDomaindomain=AppDomain.CreateDomain("MyDomain",null,info);
5http://www.cnblogs.com/Images/OutliningIndicators/None.gifdomain.ExecuteAssembly("C:\\test\\DomainCom.exe");
6http://www.cnblogs.com/Images/OutliningIndicators/None.gifAppDomain.Unload(domain);
7http://www.cnblogs.com/Images/OutliningIndicators/None.gif
页:
[1]