Вывод результата Ping в цикле - C#

Узнай цену своей работы

Формулировка задачи:

Друзья, добрый день! Подскажите пожалуйста, что не так в коде?
for (int i = 0; i < 10; i++)
                {
                    
                    pingReply = ping.Send(IPAddress.Parse(txbx_targetPing.Text.Trim()));
                    txbx_resultPing.Text += @"IP:" + @" " + pingReply.Address + @" " + @"Time:" + @" " + pingReply.RoundtripTime + @"ms" + @" " + @"Status:" + @" " + pingReply.Status + Environment.NewLine;
                    Thread.Sleep(100);
                }
Хочу чтобы каждый пакет пинг отсылался через 100мс 10 раз. Код работает так, что в самом начале, перед первым пингом задержка 100мс, а потом 10 пингов одним махом выводит! В чем проблема, подскажите пожалуйста?

Решение задачи: «Вывод результата Ping в цикле»

textual
Листинг программы
void buttonPingClick(object sender, EventArgs e)
{
    new Thread(DoPing).Start();
}
 
void DoPing()
{
    var ping = new Ping();
    IPAddress addr = IPAddress.Parse(txbx_targetPing.Text.Trim());
    for (int i = 0; i < 10; i++)
    {
        var pingReply = ping.Send(addr);
        txbx_resultPing.Invoke(new Action(() => txbx_resultPing.Text += string.Format("IP: {0} Time: {1}ms Status: {2}", pingReply.Address, pingReply.RoundtripTime, pingReply.Status) ));  
        Thread.Sleep(100);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы