2016-09-08 5 views
2

프록시를 핑 (ping)하려고하는데 내 코드로 진행하기 전에 응답을받는 데 걸리는 시간이 얼마나 길지 만 스톱워치는 너무 빠릅니다. 내가 여기서 어디로 잘못 가고 있니?C# 프록시 핑을 기다리는 방법?

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; 
     } 

    } 
+0

당신은 지금 몇시에 무엇을 기대하고 있습니까? – arbitrarystringofletters

+0

나는 2-600ms를 얻는다. 나는 6000ish를 기대하고있다. – user6793946

답변

1

문제는 마지막이 완전히 초 경과 된 밀리 초 NOT 총 수를 경과 이후 TimeSpan.Milliseconds 실제로 밀리 세컨드 수 있다는 것이다. 1500 밀리 초 동안 무언가가 실행되는 경우 Milliseconds 속성은 1500이 아닌 500을 반환합니다. stopWatch.Elapsed.TotalMilliseconds을 대신 사용해야하며 그 대신 int이 아닌 double이 필요합니다.

+0

그것은 아름답고 아름다운 사람이다. – user6793946