C#与.NET程序员面试宝典 2.2.8 面试题15:.NET的应用程序域是什么
应用程序域是.NET框架中的基本概念,程序员常用于减少运行应用程序的系统开销。读者需要掌握并清楚地理解其基本概念。
【出现频率】★★★★
【关键考点】
应用程序域(AppDomain)
数据访问
【考题分析】
应用程序域(AppDomain)用于减少运行应用程序的系统开销,是.NET中的一个重要技术改进。有些应用程序需要与其他程序分离开来,但同时还需要彼此通信,这时需要用到应用程序域。应用程序域可以做到分离组件,它不会导致因在进程之间传送数据而产生性能问题。主要的操作方法是将任何一个进程分解到多个应用程序域中,而每一个应用程序域均对应一个应用程序,执行的每个线程都运行在一个具体的应用程序域中。
倘若不同的可执行文件都运行在同一个进程空间中,因理论上应用程序需要与其他程序可以直接访问彼此的数据,所以它们之间能够轻松地共享数据。虽然在理论上这是可以实现的,但是CLR依然会检查每个正在运行的应用程序的代码,以确保这些代码不偏离它自己的数据区域,并且保证不发生直接访问其他进程的数据的情况。
注意:在一个操作系统的进程中运行一个或多个应用程序域。应用程序域的创建和销毁所需的开销,相对于操作系统进程较小。但和操作系统进程一样,应用程序域之间的数据共享相当困难。
【答案】
应用程序域(AppDomain)是CLR中提供代码运行范围、错误隔离和安全隔离的逻辑单元,功能类似于操作系统的进程。