process.startinfo.RedirectStandardOutput给出异常并且process.waitforexit()挂起C#应用程序

时间:2012-09-14 13:14:41

标签: c# process processstartinfo waitforexit

使用进程我在使用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的时间,但没有取得成功。

2 个答案:

答案 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();

你应该试试这个。 改变代码序列。