22
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 ฉันรู้ว่าผลลัพธ์จากกระบวนการที่ฉันเริ่มมีความยาวประมาณ 7MB ใช้งานได้ในคอนโซล Windows ทำงานได้ดี น่าเสียดายที่โปรแกรมนี้แฮงค์อย่างไม่มีกำหนดเวลาที่ WaitForExit โปรดทราบว่านี่จะไม่ใช้รหัสเพื่อวางผลลัพธ์ขนาดเล็ก (เช่น 3KB) เป็นไปได้ว่า StandardOutput ภายในใน ProcessStartInfo ไม่สามารถบัฟเฟอร์ 7MB ได้หรือไม่? ถ้าเป็นเช่นนั้นฉันควรทำอย่างไร ถ้าไม่ฉันทำอะไรผิด
187
c#
processstartinfo