程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 關於使用Timer定時監測網絡是否ping通,timer監測ping通

關於使用Timer定時監測網絡是否ping通,timer監測ping通

編輯:C#入門知識

關於使用Timer定時監測網絡是否ping通,timer監測ping通


項目需要連接某台具體服務端,如果連不上則實時提示,開始使用Timer實時檢測

 void timer_Tick(object sender, EventArgs e)
        {
            Ping pingSender = new Ping();
            PingReply reply = pingSender.Send("192.168.1.104", 1000);
            if (reply.Status != IPStatus.Success)
            {
                Message.show("網絡異常")
            }
        }

如果我Timer一直執行的話,會導致該程序的內存一直增長,後來測試發現不是Timer的問題,Timer一直運行不會影響內存,是在Timer中使用Ping導致問題,Ping後估計會有返回值,沒有清除

後修改,把Ping pingSender = new Ping() 拿出來,添加一個PingCompleted事件,釋放解決問題

 void pingSender_PingCompleted(object sender, PingCompletedEventArgs e)
        {
            (sender as IDisposable).Dispose();
        }

 後續問題:

      如果再一直ping的過程中,出現某次ping的時候timeout,就會出現錯誤,做修改,當ping的不成功數大於具體次數時才提出錯誤。

     第二個問題,當有成千上萬台電腦都在ping 某個IP時,會不會造成那個IP的電腦寬帶阻塞

大牛們,請指導

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved