次のコードがあります。
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
開始しているプロセスからの出力の長さは約 7MB です。Windows コンソールで実行すると問題なく動作します。残念ながら、プログラム的には、これは で無期限にハングしWaitForExit
ます。また、このコードは小さい出力 (3KB など) ではハングしないことに注意してください。
内部StandardOutput
でProcessStartInfo
7MBをバッファリングできない可能性はありますか? もしそうなら、私は代わりに何をすべきですか?そうでない場合、私は何を間違っていますか?