Windows 10, C#,. NET Core 3.1
Я хочу иметь несколько консолей windows для вывода. Например, на одном дисплее я хочу разместить одно окно консоли, которое будет отображать только ошибки, на другом дисплее я хочу разместить набор другой консоли windows, который будет отображать различные отчеты. Все эти консоли windows предназначены только для чтения. Кроме того, в то же время я хочу иметь главное окно консоли, которое я буду использовать в качестве терминала (для ввода ключевых слов). Я видел подобное в фильмах о программистах и хочу попробовать сделать то же самое:)
Я ожидал, что смогу создать дочерние процессы и записать в Input каждый из них из родительского процесса. Я ожидал, что у каждого дочернего процесса будет свое собственное окно консоли, но я вижу, что они используют окно консоли основного процесса.
Это мой основной код приложения:
using System;
using System.Diagnostics;
namespace ConsoleClient
{
class Program
{
static void Main(string[] args)
{
Console.Title = "Console app...";
Console.WriteLine("This is the message for the main console application.");
var procInfo = new ProcessStartInfo(
@".\logger\ConsoleLogger.exe");
procInfo.UseShellExecute = false;
procInfo.RedirectStandardInput = true;
procInfo.CreateNoWindow = false;
using (var proc = new Process())
{
proc.StartInfo = procInfo;
proc.Start();
var sw = proc.StandardInput;
sw.WriteLine("This is the message for the child console application.");
Console.WriteLine("Press ENTER for exit...");
Console.ReadLine();
proc.Kill();
}
}
}
}
Это мой дочерний код приложения:
using System;
using System.Diagnostics;
namespace ConsoleLogger
{
class Program
{
static void Main(string[] args)
{
Console.Title = $"Process #{Process.GetCurrentProcess().Id} (logger)";
while (true)
{
var line = Console.In.ReadLine();
Console.WriteLine(line);
}
}
}
}
В результате получается общее окно консоли для обоих процессов (parrent и ребенок):
Как мне решить эту проблему?
UPD
Я думаю, что проблема в RedirectStandardInput
использование. Я пытаюсь найти другое решение.