.NET 11 получил Process.RunAndCaptureText против дедлоков при запуске процессов
В .NET 11 появились одноразовые хелперы для Process: RunAndCaptureText запускает процесс, параллельно читает stdout и stderr, ждёт завершения и возвращает оба потока, код выхода и PID. Это решает классический дедлок при последовательном чтении перенаправленных потоков. API доступны в RC2 с go-live лицензией.
- RunAndCaptureText возвращает StandardOutput, StandardError, ExitStatus и ProcessId
- Синхронная версия читает оба потока на одном потоке, асинхронная использует async I/O
- Есть таймаут: при превышении выбрасывается TimeoutException с завершением процесса
- API недоступны на iOS и tvOS, в .NET 10 вызов даёт ошибку CS0117
Читать дальше
Софт