我正在尝试创建一个简单的网络工具来 ping 本地子网上所有可能的 IP,并在 DataGridView 中提供此类 IP 的列表。我是新手,不得不考虑线程,这对于一个初出茅庐的程序员来说是一件好事。抱歉,您可能需要向我解释一下,但在我看来,这应该可行。在我尝试将其放入后台工作线程之前,该应用程序只会挂起并给我一个“无响应”。
提前谢谢。
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
count = 0;
for (int j = 1; j < 255; j++)
for (int i = 1; i < 255; i++)
{
Ping ping = new Ping();
PingReply pingreply = ping.Send(IPAddress.Parse(locip[0] + "." + locip[1] + "." + j + "." + i));
if (pingreply.Status == IPStatus.Success)
{
status = "o";
repAddress = pingreply.Address.ToString(); ;
repRoundtrip = pingreply.RoundtripTime.ToString();
repTTL = pingreply.Options.Ttl.ToString();
repBuffer = pingreply.Buffer.Length.ToString();
string[] lineBuffer = { status, repAddress, repRoundtrip, repTTL, repBuffer };
ipList.Rows.Add(lineBuffer);
count += 1;
progressBar.Value += 1;
}
}
}