2017-08-16 20 views
-3

forループ内の内容は単独で問題なく動作しますが、現在はループが実行された後、PingTimes -listは常に空です。何が起きてる? C#の新機能がここにあります。forループでPing.Sendが機能しないのはなぜですか?

 private void PingTest() 
    { 
     List<long> PingTimes = new List<long>(); 
     Ping PingSender = new Ping(); 
     PingOptions options = new PingOptions(); 

     options.DontFragment = true; 

     string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; 
     byte[] buffer = Encoding.ASCII.GetBytes(data); 
     int timeout = 120; 


     for (int i = 1; i >= TimesToPing; i++) 
     { 
      PingReply reply = PingSender.Send(PingAddress, timeout, buffer, options); 
      if (reply.Status == IPStatus.Success) 
      { 
       PingTimes.Add(reply.RoundtripTime); 
      } 
      else 
      { 
       MessageBox.Show("Ping test failed due to an unknown reason."); 
       break; 
      } 
     } 
     MessageBox.Show("Pinged Address: " + PingAddress + "\nAverage Ping: " + PingTimes.Average().ToString() + "ms"); 
    } 
+2

コンピュータサイエンスの修士は本当に_debugger_ – MickyD

答えて

4

forループの状態が反転しているため、ループは実行されません。 :)

+1

を使用する方法を知っている必要がありますこれは非常に屈辱的です。 – Ricochet

+0

@Ricochetちょうどヒントですが、私はこれを口にすると言っているわけではありませんが、ループが動作していないときは、ループ内部にプリントを入れて、ループ自体が期待どおりに動作していることを確認してください。 – Carcigenicate

関連する問題