ProcessStartInfo висит на «WaitForExit»? Почему?

У меня есть следующий код:

info = new System.Diagnostics.ProcessStartInfo("TheProgram.exe", String.Join(" ", args));
info.CreateNoWindow = true;
info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
System.Diagnostics.Process p = System.Diagnostics.Process.Start(info);
p.WaitForExit();
Console.WriteLine(p.StandardOutput.ReadToEnd()); //need the StandardOutput contents

Я знаю, что вывод от запускаемого мной процесса составляет около 7 МБ. Запуск его в консоли Windows работает нормально. К сожалению, программно это висит неопределенно в WaitForExit. Также обратите внимание, что код НЕ зависает для небольших выходных данных (например, 3 КБ).

Возможно ли, что внутренний StandardOutput в ProcessStartInfo не может буферизовать 7 МБ? Если так, что я должен сделать вместо этого? Если нет, что я делаю не так?

Ответы на вопрос(19)

Ваш ответ на вопрос