开发者

C# Process <instance>.StandardOutput InvalidOperationException "Cannot mix synchronous and asynchronous operation on process stream."

开发者 https://www.devze.com 2022-12-27 10:14 出处:网络
I tried this myProcess = new Process(); myProcess.StartInfo.CreateNoWindow = true; myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

I tried this

        myProcess = new Process();

        myProcess.StartInfo.CreateNoWindow = true;
        myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

        myProcess.StartInfo.FileName = "Hello.exe";

        myProcess.StartInfo.Arguments ="-say Hello";
        myProcess.StartInfo.UseShellExecute = false;  

        myProcess.OutputDataReceived += new DataReceivedEventHandler(myProcess_OutputDataReceived);
        myProcess.Er开发者_如何学编程rorDataReceived += new DataReceivedEventHandler(myProcess_OutputDataReceived);
        myProcess.Exited += new EventHandler(myProcess_Exited);
        myProcess.EnableRaisingEvents = true;

        myProcess.StartInfo.RedirectStandardOutput = true;
        myProcess.StartInfo.RedirectStandardError = true;
        myProcess.StartInfo.ErrorDialog = true;
        myProcess.StartInfo.WorkingDirectory = "D:\\Program Files\\Hello";

        myProcess.Start();

        myProcess.BeginOutputReadLine();
        myProcess.BeginErrorReadLine();

Then I am getting this error.. alt text http://img188.imageshack.us/img188/3759/errorstack.jpg

My process takes very long to complete, so I need to show progress in runtime.


You don't need to call ReadLine(), the line of text that was read is one of the properties passed to you in the DataReceivedEventArgs object.

0

精彩评论

暂无评论...
验证码 换一张
取 消