Ping.Send超时被忽略

时间:2019-08-23 09:08:25

标签: c# ping

我有一个小功能,可以将一系列ping发送到指定的主机,以便在执行其他操作之前确定设备是否在线。

面临的问题是Ping.Send的超时参数被忽略,并且无论超时指定了什么int,它花费相同的时间才能失败。 我尝试将超时从1000更改为仅10,但一次ping失败/超时仍需要20秒左右。

public static bool MultiOnlinePingCheck(string _hostDevice)
{
    for (int i = 0; i < 10; i++)
    {
        Ping SinglePing = new Ping();

        try
        {
            PingReply PR = null;
            PR = SinglePing.Send($"{_hostDevice}", 1000);

            if (PR.Status == IPStatus.Success)
            {
                SinglePing.Dispose();
                return true;
            }
        }
        catch (Exception err)
        {
            // No response - try again
            SinglePing.Dispose();
        }
    }

    return false;
}

我可以确认要在其上进行测试的主机是域中不存在的设备(并且很可能已经有一段时间了),因此无法解析主机名,但是我仍然希望这个时间正确退出?

0 个答案:

没有答案