ローカルサブネット上のすべての可能なIPにpingを実行し、DataGridViewでそのようなIPのリストを提供するための単純なネットワークツールを作成しようとしています。私は、新進のプログラマーとして出くわすのに良いことであるスレッド化を検討しなければならないのは初めてです。申し訳ありませんが、おそらく私に説明する必要がありますが、私の心の中ではこれはうまくいくはずです。それをbackgroundworkerスレッドに入れようとする前に、アプリケーションがハングして「応答しません」と表示されました。
よろしくお願いします。
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;
}
}
}