Асинхронный пинг множества хостов - C#
Формулировка задачи:
Пытаюсь написать пингер. Есть множество хостов host[] которые нужно периодически пинговать, и есть массив pingTime[], который нужно заполнять результатами пинга. Как передать делегату значение переменной i? Текущий код неправильный и приводит к ошибке.
for (byte i = 0; i < allhosts; i++) { Ping ping = new Ping(); ping.PingCompleted += delegate(object sender, PingCompletedEventArgs e) { pingTime[i] = Convert.ToInt16(e.Reply.RoundtripTime); (ping as IDisposable).Dispose(); } ping.SendAsync(host[i], timeout, new AutoResetEvent(false)); }
Решение задачи: «Асинхронный пинг множества хостов»
textual
Листинг программы
for (byte i = 0; i < allhosts; i++) { Ping ping = new Ping(); int n = i; ping.PingCompleted += delegate(object sender, PingCompletedEventArgs e) { pingTime[n] = Convert.ToInt16(e.Reply.RoundtripTime); (ping as IDisposable).Dispose(); } ping.SendAsync(host[i], timeout, new AutoResetEvent(false)); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д