Часто, при пинге сервера программа подвисает на 1-2 секунды и выдаёт значение пинга 0 - C#
Формулировка задачи:
Создал программу для проверки пинга. Часто, при пинге сервера программа подвисает на 1-2 секунды и выдаёт значение пинга 0. Есть ли какое-то исключение, которое можно заточить в try catch, что бы программа не зависала?
Решение задачи: «Часто, при пинге сервера программа подвисает на 1-2 секунды и выдаёт значение пинга 0»
textual
Листинг программы
static void DoPing(object o)
{
PingData data = (PingData)o;
try
{
Ping ping = new Ping();
PingReply pingReply = ping.Send(data.Address);
if (pingReply.RoundtripTime <= 70 && pingReply.RoundtripTime >= 1)
{
data.Label.ForeColor = System.Drawing.Color.Green;
}
else if (pingReply.RoundtripTime >= 70 && pingReply.RoundtripTime <= 120)
{
data.Label.ForeColor = System.Drawing.Color.Orange;
}
else if (pingReply.RoundtripTime >= 120)
{
data.Label.ForeColor = System.Drawing.Color.Red;
}
else if (pingReply.RoundtripTime == 0)
{
data.Label.Text = "Сервер умер :)";
}
if (pingReply.RoundtripTime != 0)
{
data.Label.Text = pingReply.RoundtripTime.ToString();
}
}
catch (PingException)
{
data.Label.ForeColor = System.Drawing.Color.Red;
data.Label.Text = "Ошибка";
}
}