[ZZ] 应用程序域 AppDomain WinForm程序


4. 应用程序域
4.1 什么是应用程序域?
应用程序域 (AppDomain) 可以被看作一个轻型的进程。在一个 Win32 进程中可以存在多个 AppDomain。AppDomain 的主要目的是将应用程序和其它应用程序隔离开来。 

通过使用独立的地址空间,Win32 进程提供隔离性。这种方法很有效,但开销很大并且伸缩性不好。.NET 运行库通过控制对内存的是用来施加 AppDomain 隔离—AppDomain 中的所有内存是由 .NET 运行库来管理的,所以运行库可以确保 AppDomain 之间不能访问彼此的内存。

  

4.2 如何创建 AppDomain?
AppDomains 通常有宿主创建。宿主包括 Windows Shell、ASP+ 和 IE。当你从命令行运行一个 .NET 应用程序时,宿主是 Shell。Shell 为每个应用程序创建一个新的 AppDomain。 

AppDomains 也可以由 .NET 应用程序来显式创建。这里是一个创建 AppDomain 的一个 C# 例子,它创建对象的一个实例,并随后执行对象的一个方法: 

 
   
using System;
using System.Runtime.Remoting;

public class CAppDomainInfo : MarshalByRefObject
{
public string GetAppDomainInfo()
{
return " AppDomain = " + AppDomain.CurrentDomain.FriendlyName;
}

}

public class App
{
public static int Main()
{
AppDomain ad
= AppDomain.CreateDomain( " Andy's new domain " , null , null );
ObjectHandle oh
= ad.CreateInstance( " appdomaintest.exe " , " CAppDomainInfo " );
CAppDomainInfo adInfo
= (CAppDomainInfo)(oh.Unwrap());
string info = adInfo.GetAppDomainInfo();

Console.WriteLine(
" AppDomain info: " + info );
return 0 ;
}
}

转载于:https://www.cnblogs.com/wk23415/archive/2011/03/23/1992113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值