0
Ich möchte eine Liste von IPs pingen, aber es funktioniert nicht.Multithread-Ping-IPs
Ich verwende diese Funktion bereits in der Konsole App und es funktionierte.
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;
}
bitte helfen Sie mir.
danke
definieren "funktioniert nicht" ... erhalten Sie einen Fehler? Welches Verhalten erwarten Sie und was passiert stattdessen? – jeroenh
Wenn ich den Code-PC ausführen, funktioniert nicht mehr – Alireza