私は、コードのこの部分はデッドロック引き起こす可能性があることread: 親プロセスが子プロセスが十分なテキストを書き込みp.WaitForExit
p.StandardOutput.ReadToEnd
前 と を呼び出す場合、デッドロック状態が発生することができますProcess.StandardOutput.ReadToEnd();のDeadLockの問題
ので
Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.FileName = "Write500Lines.exe"; p.Start(); p.WaitForExit(); string output = p.StandardOutput.ReadToEnd();
を リダイレクトされたストリームを入力します。子プロセスが終了するの 親プロセスは、無期限に 待機していました。 子プロセスがフル StandardOutputストリームから読み取るために無期限 親のために待機していました。
しかし、私はなく、かなりなぜ。つまり、ここでは、親プロセスとは何ですか、そしてその子は何ですか?
あなたは、.NETプロセスストリームでの作業のデッドロックやその他の複雑さを説明している、[このポスト](http://www.codeducky.org/process-handling-net)に興味があるかもしれません。 – ChaseMedallion