以下是应用程序代码。一段时间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