谁用过应用程序域AppDomain 的?怎么才能多开?

问题描述

AppDomainapp1=AppDomain.CreateDomain("111");string[]入口参数=newstring[1];入口参数[0]="XX";app1.ExecuteAssembly("ACDsee.exe",入口参数);AppDomain.Unload(app1);AppDomainapp2=AppDomain.CreateDomain("222");入口参数[0]="YY";app2.ExecuteAssembly("ACDsee.exe",入口参数);-------------------只能创建app1,程序不会创建app2,除非app1关闭了才会去创建app2.我该怎么弄?

解决方案

本帖最后由 heizi406 于 2014-07-17 11:59:27 编辑
解决方案二:
AppDomainad=AppDomain.CreateDomain("xx",null,null);ObjectHandleoh1=ad.CreateInstance("1.exe","");ObjectHandleoh1=ad.CreateInstance("2.exe","");

解决方案三:
引用1楼sunny906的回复:

AppDomainad=AppDomain.CreateDomain("xx",null,null);ObjectHandleoh1=ad.CreateInstance("1.exe","");ObjectHandleoh1=ad.CreateInstance("2.exe","");

不行啊,说找不到指定文件,用@"1.exe"后说第二个参数字符串长度不能为0.
解决方案四:
app1.ExecuteAssembly("ACDsee.exe",入口参数);//这个函数直到执行的程序main返回值才会返回如果你要同时打开不同的程序,可以另开一个线程
解决方案五:
如果只是要开个ACDsee.exe,何必劳AppDomain大驾啊,直接开个Process就行了.System.Diagnostics.Process.Start("ACDsee.exe","入口参数");

时间: 2024-09-20 04:13:22

谁用过应用程序域AppDomain 的?怎么才能多开?的相关文章

.Net的 AppDomain 没有达到MS所宣传的核心功能:“使用应用程序域隔离可能终止进程的任务。” ;难道是我错了?

问题描述 这是MSDN上的关于AppDomain的功能帮助说明:"应用程序域(由AppDomain对象表示)为执行托管代码提供隔离.卸载和安全边界.使用应用程序域隔离可能终止进程的任务.如果正在执行任务的AppDomain的状态变得不稳定,则可以卸载AppDomain,但不会影响进程.如果程序集被加载到默认应用程序域中,则当进程运行时将无法从内存中卸载该程序集."我的问题:我当前的系统中有几个功能相对独立的组件,但它们长时间运行后总会由于某一个组件出现无法捕获的异常而导致应用崩溃.根据

.NET简谈组件程序设计之(AppDomain应用程序域)

最近在苦学.NET底层框架模型,发现.NET深入真的不是一般的难,不开源.没有相关系统的官方的书籍做学习资料,只能零散的看MSDN.要想摸熟.NET的模型真的并非易事.慢慢来吧.[王清培版权所有,转载请给出署名] .NET应用程序域(AppDomain)是我们所有.NET应用程序的逻辑宿主容器.初次接触会感觉到AppDomain离我们日常开发比较远,不常用到.其实是我们很少接触一些复杂而底层的系统结构.在日常的开发中,我们多数是基于数据库的管理信息系统(MIS),做增.删.改.查的操作.我始终认

应用程序域

应用程序域 在进行学习asp.net内容之前,需要了解一下应用程序域的相关内容.处理asp.net所涉及的类大多数定义在System.Web程序集中.在.Net中,管理程序集的最小逻辑单元为应用程序域(AppDomain).对于.Net程序来说可以动态的加载程序集到应用程序域中.但是,加载之后的程序集不能单独卸载,只能以应用程序域为单位来整体卸载. 应用程序域四个机制: 隔离:不同应用程序域之间不能直接访问.跨应用程序域访问的对象必须派生自System.MarshalByRefObject. 卸

了解ASP.NET底层架构

asp.net|架构 了解ASP.NET底层架构 进入底层 这篇文章以非常底层的视角讲述了Web请求(request)在ASP.NET框架中是如何流转的,从Web服务器,通过ISAPI直到请求处理器(handler)和你的代码.看看在幕后都发生了些什么,不要再把ASP.NET看成一个黑盒了.   ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用.绝大多数的人只熟悉高层的框架如WebForms和WebServices-这些都在A

Visual C#中的多线程编程

visual|编程|多线程 C#是.Net平台的通用开发工具,它能够建造所有的.Net应用.在.Net中所有线程都运行在应用程序域(AppDomain)中,这也许让你想到Win32进程,实际上它们还是有很大的不同.应用程序域提供了一种安全而通用的处理单元,公共语言运行库可使用它来隔离应用程序.注意在.Net中应用程序的隔离是应用程序域而不是进程,在单个进程中可以存在几个应用程序域,而且线程可以跨越应用程序域的范围,某个线程中的方法可以调用另一个线程的方法,这样的话就不会造成进程间调用或进程间切换

[CLR via C#]26. 计算限制的异步操作

原文:[CLR via C#]26. 计算限制的异步操作 一.CLR线程池基础     前面说过,创建和销毁线程是一个比较昂贵的操作,太多的线程也会浪费内存资源.由于操作系统必须调度可运行的线程并执行上下文切换,所以太多的线程还有损于性能.为了改善这个情况,CLR使用了代码来管理它自己的线程池.可将线程池想像成可由你的应用程序使用的一个线程集合.每个进程都有一个线程池,它在各个应用程序域(AppDomain)是共享的.     CLR初始化时,线程池是没有线程的.在内部,线程池维护了一个操作请求

ASP.NET页面与IIS底层交互和工作原理详解

ASP.NET页面与IIS底层交互和工作原理详解  第一回:   引言 我查阅过不少Asp.Net的书籍,发现大多数作者都是站在一个比较高的层次上讲解Asp.Net.他们耐心.细致地告诉你如何一步步拖放控件.设置控件属性.编写CodeBehind代码,以实现某个特定的功能. 这种做法,实际上是回答了"如何去做"的问题,却没有回答"为什么可以这样做"的问题. 尽管我很推崇 悉江华 先生的<圣殿祭祀的Asp.Net开发详解>一书,但当我翻看了一下其对角色(R

[.NET 基于角色安全性验证] 之一:基础知识

.NET 基于角色安全性验证的核心是主体(Principal)和标识(Identity)对象,其中主体负责角色或者组的验证,标识对象封装有关正在验证的用户或实体的信息.角色安全性验证通过生成可供当前线程使用的主体信息来支持授权,其中主体用关联的标识进行构造. public interface IPrincipal{ // Methods bool IsInRole(string role);  // Properties IIdentity Identity { get; }} public i

.NET简谈组件程序设计之(初识远程调用)

在.NET1.0版本出来的时候,要想进行远程调用基本上都是通过WebService的方式.而随着.NET2.0版本的出现,我们可以通过一个更加方便且高扩展性的框架来进行编写远程调用的程序,也就是我们都比较熟悉的.NetRemoting. 网上对.NetRemoting技术讲解的文章不计其数,但是很少有一本比较全面的.系统的学习书籍.我们都是从哪些零散的知识里慢慢摸索,效果不太理想. 今天我也来简单的介绍一下我理解的Remoting.不仔细研究一下还真不知道它的厉害,完全的托管平台.高扩展性.灵活