คำถามติดแท็ก processstartinfo

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 ได้หรือไม่? ถ้าเป็นเช่นนั้นฉันควรทำอย่างไร ถ้าไม่ฉันทำอะไรผิด

12
การดำเนินการแบทช์ไฟล์ใน C #
ฉันพยายามรันไฟล์แบตช์ใน C # แต่ฉันไม่ได้รับโชคทำ ฉันพบตัวอย่างหลายอย่างบนอินเทอร์เน็ต แต่มันไม่ได้ผลสำหรับฉัน public void ExecuteCommand(string command) { int ExitCode; ProcessStartInfo ProcessInfo; Process Process; ProcessInfo = new ProcessStartInfo("cmd.exe", "/c " + command); ProcessInfo.CreateNoWindow = true; ProcessInfo.UseShellExecute = false; Process = Process.Start(ProcessInfo); Process.WaitForExit(); ExitCode = Process.ExitCode; Process.Close(); MessageBox.Show("ExitCode: " + ExitCode.ToString(), "ExecuteCommand"); } สตริงคำสั่งมีชื่อไฟล์แบตช์ (เก็บไว้ในsystem32) และไฟล์บางไฟล์ที่ควรจัดการ (ตัวอย่าง: txtmanipulator …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.