使用进程我在使用process.StartInfo.RedirectStandardOutput = true时遇到异常; 例外情况如下 “StandardOut尚未重定向或进程尚未开始。”
我正在使用process.WaitForExit挂起我的应用程序gui所以我使用了process.StandardOutput.ReadToEnd();在WaitForExit之前,按照MSDN,但现在我的进程运行了无限时间,并在日志文件中提供了上述异常,GUI也挂起。
Process process = new Process();
process.StartInfo.WorkingDirectory = Path.GetDirectoryName(Application.ExecutablePath);
string strArguments = "";
process.StartInfo.FileName = @"appname.bat";
process.StartInfo.Arguments = strArguments;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
process.Close();
我没有得到我缺少的地方或代码中的错误...即使我已经尝试了waitforexit的时间,但没有取得成功。
答案 0 :(得分:2)
试试这个
process.StartInfo.RedirectStandardOutput = true;
process.OutputDataReceived += (sender, args) => Console.WriteLine("received output: {0}", args.Data);
process.Start();
process.BeginOutputReadLine();
答案 1 :(得分:0)
process.WaitForExit(); string output = process.StandardOutput.ReadToEnd();
你应该试试这个。 改变代码序列。