【发布时间】:2014-04-11 19:20:04
【问题描述】:
我有一个列表视图,我尝试使用此代码添加服务器信息:
foreach(string element in ids)
{
int id = Int32.Parse(element);
ListViewItem item = new ListViewItem(name[id]);
item.SubItems.Add(ip[id]);
Ping pingsv = new Ping();
PingReply pingreply = pingsv.Send(ips[id],500);
if (pingreply.RoundtripTime == 0)
item.SubItems.Add("500+");
else
item.SubItems.Add(pingreply.RoundtripTime.ToString());
}
但问题是程序一个接一个地对服务器进行 ping 操作,并且需要很长时间才能完成(我有 80 个 ip 需要 ping,将来可能还会更多) 那么有什么办法可以同时ping通所有的ip呢?
【问题讨论】:
-
你可以使用多个线程。
-
克罗诺,试过但没用。程序冻结,没有任何错误。
-
您是否尝试过调试代码以查看其冻结的原因?
-
Crono,mscorlib.dll 中出现“System.Reflection.TargetInvocationException”类型的未处理异常,Application.Run(new LauncherTest()) 出现错误;
-
信息还不够。使用您的多线程代码和完整的异常堆栈跟踪编辑您的问题,我们将从那里获取它。