2016-09-08 10 views
2

私はプロキシをpingしようとしています。コードを処理する前にpingを取得するまでにどれくらい時間がかかりますが、私のストップウォッチは速すぎます。私はここでどこが間違っていますか?C#プロキシの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; 
     } 

    } 
+0

今何時になって、何を期待していますか? – arbitrarystringofletters

+0

私は2~600ミリメートルを得る、私は6000ishを期待している – user6793946

答えて

1

問題はTimeSpan.Millisecondsが実際に最後の完全経過秒からのミリ秒数、NOT経過ミリ秒の合計数であることです。つまり、何かが1500ミリ秒間実行された場合、Millisecondsプロパティは1500でなく500を返します。stopWatch.Elapsed.TotalMillisecondsを代わりに使用する必要があります。doubleであり、intではありません。

+0

それは、美しい美しい人です。 – user6793946

関連する問題