0
IPのリストにpingを実行したいが、動作していない。マルチスレッドのping IP
私は既にコンソールアプリケーションでこの機能を使用していましたが、機能していました。
string[] addresses = { "192.168.1.2", "192.168.1.3", "192.168.1.4" };
void show()
{
List<Task<PingReply>> pingTasks = new List<Task<PingReply>>();
foreach (var address in addresses)
{
pingTasks.Add(PingAsync(address));
}
Task.WaitAll(pingTasks.ToArray());
int i = 0;
listView1.Clear();
listView1.Columns.Add("Device IP", 100);
listView1.Columns.Add("ping", 60);
foreach (var pingTask in pingTasks)
{
string[] A = { addresses[i], pingTask.Result.RoundtripTime.ToString() };
ListViewItem item = new ListViewItem(A);
listView1.Items.Add(item);
i++;
}
}
Task<PingReply> PingAsync(string address)
{
var tcs = new TaskCompletionSource<PingReply>();
Ping ping = new Ping();
ping.PingCompleted += (obj, sender) =>
{
tcs.SetResult(sender.Reply);
};
ping.SendAsync(address, new object());
return tcs.Task;
}
私を助けてください。 1つのIP仕上げは、そしてちょうどサンプルのために、迅速かつ汚い、リストビューに追加した場合
は、終了するのを待たずに
定義します"働いていない" ...あなたはエラーを受け取りますか?あなたはどんな振る舞いをしていますか? – jeroenh
コードを実行するとPCが動作しなくなる – Alireza