Process 运行外部程序的问题

sw5419001 2012-03-13 10:09:50
需求:用process方法在后台启动ping命令 ping www.baidu.com -t ,并获取命令的返回结果。
如:Minimum = 46ms, Maximum = 48ms, Average = 47ms

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


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();//关闭流
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangchangming 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bunliney 的回复:]
引用 1 楼 sw5419001 的回复:

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

用异步获取控制台的输出。
[/Quote]
如果楼主只是要想知道是否ping得通,其实Microsoft.VisaulBasic命名空间下封装了好多实用类,
new Microsoft.VisualBasic.Devices.Computer().Network.Ping("www.baidu.com");
返回Boolean型。
Bullatus 2012-03-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sw5419001 的回复:]

请大家帮帮忙,在线等,谢谢。
[/Quote]
用异步获取控制台的输出。
sw5419001 2012-03-13
  • 打赏
  • 举报
回复
请大家帮帮忙,在线等,谢谢。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧