c#如何等待一个代理ping

本文关键字:ping 一个 代理 等待 何等待 | 更新日期: 2023-09-27 18:06:04

我正在尝试ping一个代理,并计算响应需要多长时间才能在继续我的代码之前获得ping,但是我的秒表太快了。我哪里出错了?

    private async void idunno()
    {
        Stopwatch stopWatch = new Stopwatch();
        stopWatch.Start();

        var x = await CanPing2();
        Console.WriteLine("is proxy alvie: " + x);
        stopWatch.Stop();
        int ts = stopWatch.Elapsed.Milliseconds;
        Console.WriteLine("RunTime " + ts);

        Console.WriteLine("RunTime " + ts2);
    }
    public async Task<bool> CanPing2()
    {
        string ip = "170.130.59.107";
        Console.WriteLine(ip);
        Ping ping = new Ping();
        try
        {
            PingReply reply = await ping.SendPingAsync(ip, 6000);
            if (reply == null) return false;
            Console.WriteLine("cp2 is alive: " + IPStatus.Success);
            return (reply.Status == IPStatus.Success);
        }
        catch (PingException e)
        {
            Console.WriteLine("cp2: ex: " + IPStatus.Success);
            return false;
        }
    }

c#如何等待一个代理ping

问题是TimeSpan.Milliseconds实际上是自最后一个完全经过的秒以来的毫秒数,而不是经过的总毫秒数。例如,如果某个东西运行了1500毫秒,那么Milliseconds属性将返回500,而不是1500。您需要使用stopWatch.Elapsed.TotalMilliseconds代替,顺便说一下,这是double,而不是int