关于使用Timer定时监测网络是否ping通_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 关于使用Timer定时监测网络是否ping通

关于使用Timer定时监测网络是否ping通

 2015/4/22 15:18:07  奮鬥的QB  程序员俱乐部  我要评论(0)
  • 摘要:项目需要连接某台具体服务端,如果连不上则实时提示,开始使用Timer实时检测voidtimer_Tick(objectsender,EventArgse){PingpingSender=newPing();PingReplyreply=pingSender.Send("192.168.1.104",1000);if(reply.Status!=IPStatus.Success){Message.show("网络异常")}}如果我Timer一直执行的话,会导致该程序的内存一直增长
  • 标签:使用 网络 监测

项目需要连接某台具体服务端,如果连不上则实时提示,开始使用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();
        }

 

发表评论
用户名: 匿名