При запуске через класс Process
вы можете перенаправить потоки, чтобы обрабатывать их.Вы можете читать из stdout или stderr синхронно или асинхронно.Чтобы включить перенаправление, установите соответствующие свойства перенаправления на true
для потоков, которые вы хотите перенаправить (например, RedirectStandardOutput
), и установите UseShellExecute
на false
.Тогда вы можете просто запустить процесс и читать из потоков.Вы также можете передавать ввод данных перенаправляя стандартный ввод.
например, обрабатывать и печатать все, что процесс записывает в стандартный вывод синхронно
var proc = new Process()
{
StartInfo = new ProcessStartInfo(@"SomeProcess.exe")
{
RedirectStandardOutput = true,
UseShellExecute = false,
}
};
if (!proc.Start())
{
// handle error
}
var stdout = proc.StandardOutput;
string line;
while ((line = stdout.ReadLine()) != null)
{
// process and print
Process(line);
Console.WriteLine(line);
}