C# 如何在不同的应用程序域中启动控制台应用程序的多个实例?
我有一个控制台应用程序a和控制台应用程序B。 是否可以从A启动多个B实例。控制台应用程序B的每个实例都必须在其自己的应用程序域中运行,这一点很重要。C# 如何在不同的应用程序域中启动控制台应用程序的多个实例?,c#,.net,console-application,appdomain,C#,.net,Console Application,Appdomain,我有一个控制台应用程序a和控制台应用程序B。 是否可以从A启动多个B实例。控制台应用程序B的每个实例都必须在其自己的应用程序域中运行,这一点很重要。 如果可能,如何做到这一点?控制台只能与一个进程关联。我看不出有其他方法可以System.Diagnostics.Process.Start(“B”) 请参见控制台只能与一个进程关联。我看不出有其他方法可以System.Diagnostics.Process.Start(“B”) 当然,这是可能的。应采取的步骤包括: 应用程序A创建一个新的应用程序域
如果可能,如何做到这一点?控制台只能与一个进程关联。我看不出有其他方法可以
System.Diagnostics.Process.Start(“B”)
请参见控制台只能与一个进程关联。我看不出有其他方法可以
System.Diagnostics.Process.Start(“B”)
当然,这是可能的。应采取的步骤包括:
var appDomain = AppDomain.CreateDomain("a name");
appDomain.ExecuteAssembly("ConsoleApplicationB.exe"); //Update with the path to consolse application B.
AppDomain.Unload(appDomain);
请注意,这是我能做的最简单的例子。选择更适合您需求的过载
请注意,这是阻塞。在运行示例时,您会注意到这一点。控制台应用程序A将阻塞,直到应用程序B退出。您必须异步执行此操作。当然这是可能的。应采取的步骤包括:
var appDomain = AppDomain.CreateDomain("a name");
appDomain.ExecuteAssembly("ConsoleApplicationB.exe"); //Update with the path to consolse application B.
AppDomain.Unload(appDomain);
请注意,这是我能做的最简单的例子。选择更适合您需求的过载
请注意,这是阻塞。在运行示例时,您会注意到这一点。控制台应用程序A将阻塞,直到应用程序B退出。您必须异步执行此操作。@I4V
我想你弄错了。一个进程只能与一个控制台关联
这意味着一个进程只能与一个控制台(in | out | err)通信,换句话说,一个进程不能拥有多个控制台窗口
也就是说,多个进程可以与一个控制台通信。理想的同步过程
当然,有一些变通方法允许一个进程有多个控制台窗口(WinTTY)@I4V
我想你弄错了。一个进程只能与一个控制台关联
这意味着一个进程只能与一个控制台(in | out | err)通信,换句话说,一个进程不能拥有多个控制台窗口
也就是说,多个进程可以与一个控制台通信。理想的同步过程
当然,有一些解决方法允许一个进程有多个控制台窗口(WinTTY)Buy我需要多个appB实例,每个实例都在自己的应用程序域中启动。-1:每个新进程都有自己的AppDomain,所以进程。start应该可以,但看起来你在寻找其他的。不幸的是,目前还不清楚您到底在寻找什么,以及为什么单独的流程对您不起作用-请编辑您的问题,以明确separte流程是否可以,或者您需要具有多个AppDomain的单个流程。Buy I需要多个appB实例,每个实例都在其自己的应用程序域中启动。-1:每个新流程都有自己的应用程序域AppDomain so Process.Start应该可以,但看起来您正在寻找其他内容。不幸的是,目前还不清楚您到底在寻找什么,以及为什么单独的流程对您不起作用-请编辑您的问题,以明确separte流程是否可以,或者您需要具有多个AppDomain的单个流程。您在哪里读到的?进程可以通过使用AllocConsole或创建子进程共享同一控制台。这与应用程序域相同。新的应用程序域可以执行控制台应用程序,该应用程序将与主应用程序域共享控制台。您在哪里读到的?进程可以通过使用AllocConsole或创建子进程共享同一控制台。这与应用程序域相同。新的应用程序域可以执行控制台应用程序,该应用程序将与主应用程序域共享控制台。