我有一个控制台应用程序A和控制台应用程序B。是否可以从A启动B的多个实例。重要的是,控制台应用程序B的每个实例都要在其自己的应用程序域中运行。如果可能,如何做到这一点?
发布于 2013-01-24 17:52:18
当然这是可能的。要采取的步骤包括:
一个非常简单的例子是:
var appDomain = AppDomain.CreateDomain("a name");
appDomain.ExecuteAssembly("ConsoleApplicationB.exe"); //Update with the path to consolse application B.
AppDomain.Unload(appDomain);请注意,这是我能做的最简单的例子。选择更适合您需求的AppDomain.CreateDomain重载。
请注意,AppDomain.ExecuteAssembly正在阻塞。在运行示例时,您会注意到这一点。控制台应用程序A将阻塞,直到应用程序B退出。您将不得不异步执行此操作。
发布于 2013-01-24 03:14:10
一个控制台只能关联一个进程。除了System.Diagnostics.Process.Start("B"),我看不到其他方法
请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/ms681944(v=vs.85).aspx
发布于 2013-11-20 21:27:14
@I4V
我想你搞混了。一个进程只能与one console关联。
这意味着一个进程只能与 one console ( in |out|err)通信,换句话说,一个进程不能拥有多个控制台窗口。
也就是说,多个进程可以与一个控制台通信。理想的同步进程。
当然,有一些解决方法允许一个进程具有多个控制台窗口(WinTTY)
https://stackoverflow.com/questions/14487522
复制相似问题