我有一个控制台应用程序A和控制台应用程序B. 是否可以从A启动多个B实例。控制台应用程序B的每个实例都必须在其自己的应用程序域中运行。 如果有可能,该怎么做?
答案 0 :(得分:2)
控制台只能与一个进程相关联。我没有看到System.Diagnostics.Process.Start("B")
请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/ms681944(v=vs.85).aspx
答案 1 :(得分:2)
当然有可能。要采取的步骤是:
一个非常简单的例子是:
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退出。您必须异步执行此操作。
答案 2 :(得分:1)
@ I4V
我认为你把它搞混了。 进程只能与一个 控制台关联。
这意味着一个进程只能与一个控制台(in | out | err)进行通信,用一个术语来说,一个进程可以不 拥有多个控制台窗口。
也就是说,多个 进程可以与一个控制台通信。理想的是同步过程。
当然有一些变通办法允许一个进程拥有多个控制台窗口(WinTTY)