Таким образом, вы можете создать несколько консольных окон в одном приложении C #, но для этого вам понадобится несколько вещей. 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();
}
}
}
Вот скриншот того, как он работает.

В заключение
Получить 2 окна консоли легко, заставить их общаться друг с другом - это отдельный вопрос сам по себе. Но я бы предложил именованные трубы. Соответствующее сообщение Stackoverflow
Вы должны изменить свое мышление, потому что две консоли, однажды запущенные в разных процессах, автоматически не общаются друг с другом. Какие бы вычисления вы ни делали на одном из них, другой совершенно не знает.