[DllImport("kernel32.dll")]
private static extern Int32 AllocConsole();
Run Code Online (Sandbox Code Playgroud)
我可以使用此命令打开cmd.exe.但我只能打开一个控制台窗口并写入其中.我怎么能打开另一个?打开两个控制台窗口是否有干净,快速的解决方案?
因此,你可以在一个单独的C#windows应用程序中执行多个控制台窗口,但要这样做,你必须有一些东西.Process.start()和命令行参数.
如果你这样做,你可以让你的应用创建自己的另一个实例,但使用不同的命令行参数让每个部分做不同的事情.
这是一个简单的例子,说明如何做到这一点.
namespace Proof_of_Concept_2
{
class Program
{
static void Main(string[] args)
{
if (args.Length!= 0)
{
if (args[0] == "1")
{
AlternatePathOfExecution();
}
//add other options here and below
}
else
{
NormalPathOfExectution();
}
}
private static void NormalPathOfExectution()
{
Console.WriteLine("Doing something here");
//need one of these for each additional console window
System.Diagnostics.Process.Start("Proof of Concept 2.exe", "1");
Console.ReadLine();
}
private static void AlternatePathOfExecution()
{
Console.WriteLine("Write something different on other Console");
Console.ReadLine();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是它工作的截图.

结论,
获得2个控制台窗口很容易,让他们彼此交谈是一个单独的问题本身.但我会建议命名管道.相关的Stackoverflow帖子
你必须改变你的想法,因为一旦在不同进程上运行的2个控制台不会自动相互通信.无论你在其中一个上做什么计算,另一个完全没有意识到.