单个控制台应用程序中的多个控制台

Multiple Consoles in a Single Console Application

我创建了一个 C# 项目,其中有多个控制台应用程序。现在我的问题是:当我 运行 一个应用程序时是否可以显示多个控制台? 如果是,如何?

比方说,我有一个测试应用程序,它是主要应用程序。我还有另外两个控制台应用程序,例如 ABCXYZ。现在,当我 运行 测试应用程序时,应会出现应用程序 ABC 和 XYZ 的控制台。

我写了下面的代码:

Console.WriteLine("\n\t Calling EXE...");
Process myProcess = new Process();
string Exepath = System.IO.Directory.GetCurrentDirectory() + "\exe\ABCApplication.exe";
try
{
    myProcess.StartInfo.UseShellExecute = false;
    myProcess.StartInfo.FileName = Exepath;
    myProcess.StartInfo.CreateNoWindow = false;
    myProcess.Start();
}

catch (Exception ex)
{
    CreateLogFile();
}

您可以使用 Process.Start() 调用启动另一个进程。查看here示例

是的,你可以。

ProcessStartInfo 允许您捕获控制台输出。

您可能正在寻找这个:Redirect standard output。请注意,您还应该重定向标准错误。

这是一个简单的示例,说明可以做什么...显然,可以根据自己的喜好调整路径,还有其他一些方法:

预览:

代码:

using (var process1 = new Process())
{
    process1.StartInfo.FileName = @"..\..\..\ConsoleApp1\bin\Debug\ConsoleApp1.exe";
    process1.Start();
}

using (var process2 = new Process())
{
    process2.StartInfo.FileName = @"..\..\..\ConsoleApp2\bin\Debug\ConsoleApp2.exe";
    process2.Start();
}

Console.WriteLine("MainApp");
Console.ReadKey();

这是一个快速设置,可以而且应该调整很多东西(异常处理等)。不过,它应该可以帮助您入门。