单个控制台应用程序中的多个控制台
Multiple Consoles in a Single Console Application
我创建了一个 C# 项目,其中有多个控制台应用程序。现在我的问题是:当我 运行 一个应用程序时是否可以显示多个控制台? 如果是,如何?
比方说,我有一个测试应用程序,它是主要应用程序。我还有另外两个控制台应用程序,例如 ABC
和 XYZ
。现在,当我 运行 测试应用程序时,应会出现应用程序 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();
这是一个快速设置,可以而且应该调整很多东西(异常处理等)。不过,它应该可以帮助您入门。
我创建了一个 C# 项目,其中有多个控制台应用程序。现在我的问题是:当我 运行 一个应用程序时是否可以显示多个控制台? 如果是,如何?
比方说,我有一个测试应用程序,它是主要应用程序。我还有另外两个控制台应用程序,例如 ABC
和 XYZ
。现在,当我 运行 测试应用程序时,应会出现应用程序 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();
这是一个快速设置,可以而且应该调整很多东西(异常处理等)。不过,它应该可以帮助您入门。