Вы звоните ReadToEnd
, который, очевидно, будет блокироваться до завершения процесса.Вместо этого вы можете повторно звонить Read
или ReadLine
.Тем не менее, вы должны рассмотреть возможность или сделать это в другом потоке или , используя для этого такие события, как OutputDataReceived
.(Если вы используете события, вам нужно вызвать BeginOutputReadLine
, чтобы включить события - подробности см. В примерах MSDN.)
Причина возможного чтения в другом потокечто если вам нужно прочитать из как стандартную ошибку , так и стандартный вывод, вы должны убедиться, что процесс не заполняет свой буфер - в противном случае он может блокироваться при записи, что приводит к тупиковой ситуации.Использование асинхронного подхода упрощает эту задачу.