日期:2014-05-18  浏览次数:20793 次

Process 运行外部程序的问题
需求:用process方法在后台启动ping命令 ping www.baidu.com -t ,并获取命令的返回结果。
  如:Minimum = 46ms, Maximum = 48ms, Average = 47ms

遇到的问题:主界面一直假死状态,如何解决,谢谢。

C# code

Process info = new Process();
            info.StartInfo.FileName = "cmd.exe";
            //info.StartInfo.Arguments = " ping 61.139.2.69 -t";
            info.StartInfo.CreateNoWindow = true;//不显示dos命令行窗口
            info.StartInfo.UseShellExecute = false;
            info.StartInfo.RedirectStandardInput = true;
            info.StartInfo.RedirectStandardOutput = true;
            info.Start();
            info.StandardInput.WriteLine("ping www.baidu.com -t"); 
            StreamReader sr = info.StandardOutput;

            StreamReader reader = info.StandardOutput;//截取输出流
            string strLine = reader.ReadLine();//每次读取一行
            while (!reader.EndOfStream)
            {
                tbResult.AppendText(strLine + " ");
                strLine = reader.ReadLine();
            }
            info.WaitForExit();//等待程序执行完退出进程
            info.Close();//关闭进程
            reader.Close();//关闭流



------解决方案--------------------
探讨

请大家帮帮忙,在线等,谢谢。

------解决方案--------------------
探讨
引用:

请大家帮帮忙,在线等,谢谢。

用异步获取控制台的输出。