以下是應用程序代碼。一段時間p.StandardOutput.ReadLine();工作正常,但過一段時間就掛斷我嘗試了所有的事情,但仍然收到此錯誤StandardOutput.ReadLine()應用程序掛起使用C#
ProcessStartInfo startInfo = new ProcessStartInfo("c:\\windows\\system32\\test.exe");
String s = " ";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.CreateNoWindow = true;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
Process p = Process.Start(startInfo);
p.StandardInput.WriteLine("list volume\n");
String f = "";
bool ignoredHeader = false;
s = p.StandardOutput.ReadLine();
p.WaitForExit();
請幫我
你什麼錯誤? – Arion 2012-04-23 11:24:56
也許程序有時不輸出任何東西? – CodesInChaos 2012-04-23 11:26:53
或者它有時輸出多於一行?在這種情況下,一旦輸出緩衝區滿了,被調用的程序就會被阻塞。而且,因爲在第一行之後你永遠不會讀它,它將永遠阻塞,因此'WaitForExit()'不會返回。總之,你的程序是錯誤的,除非被調用的程序總是輸出一行,不多不少。 – CodesInChaos 2012-04-23 11:27:55