猴子我苦思一晚,,没人来解决http://bbs.csdn.net/topics/390368476
我就改了下代码,用while来循环,,但是解决了上面链接的问题后,又出现新问题,,就是怎么来控制while循环每隔一段时间循环一次,,,并在datagridview中动态显示(如1.2.3.4这样递增显示出来)
public void hexing_ping(object obj)
{
int i = Convert.ToInt32(obj);
while (ff)
{
Thread.Sleep(500);
Ping pp = new Ping();
PingReply ppResult = pp.Send(Convert.ToString(hexing_date.Rows[i].Cells[1].Value), 10);
hexing_date.Rows[i].Cells[2].Value = ppResult.RoundtripTime.ToString();
hexing_date.Rows[i].Cells[3].Value = ppResult.Status.ToString();
z++;
hexing_date.Rows[i].Cells[4].Value = z;
}
//Thread.Sleep(500);
}
private Boolean ff = true;
是统计z的次数(强调下,这里是一直ping多个IP地址,我把z++放在while中后,就出现,z是在运行了多次了,并不是我想要的由1开始递增)求解决方案,,是每隔一段时间运行,并把z由数字1动态显示递增,,,
------解决方案--------------------------------------------------------
ping的话最好用多线程,效率高,你这样ping速度很慢的,如果用多线程就没有你说的每隔一段时间显示的问题,ping有结果后就显示,
------解决方案--------------------------------------------------------
一定要这么做,可以这样:
public void hexing_ping(object obj)
{
int i = Convert.ToInt32(obj);
DateTime tmStart=DateTime.Now;
while (ff)
{
while((DateTime.Now-tmStart).TotalSeconds<1.0) Thread.Sleep(100);
tmStart=DateTime.Now;