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

时间:2015-06-09 06:52:46

标签: c# 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();
}

3 个答案:

答案 0 :(得分:8)

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

预览

enter image description here

<强>代码:

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();

这是一个快速设置,可以并且应该调整许多事情(异常处理等等)。不过,它应该让你开始。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

是的,你可以。

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

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