Многопоточный пинг ИПС с#
Я хочу пропинговать список 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; }
пожалуйста, помогите мне.
спасибо
Что я уже пробовал:
в компиляции нет никакой ошибки. но когда я запускаю его, компьютер перестает работать
Richard MacCutchan
Используйте свой отладчик, чтобы отследить точку, в которой он перестает работать.