博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于使用Timer定时监测网络是否ping通
阅读量:5051 次
发布时间:2019-06-12

本文共 800 字,大约阅读时间需要 2 分钟。

项目需要连接某台具体服务端,如果连不上则实时提示,开始使用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的电脑宽带阻塞

大牛们,请指导

转载于:https://www.cnblogs.com/JohnnyBao/p/4447033.html

你可能感兴趣的文章
C++标准库vector使用(更新中...)
查看>>
cocos2d-x 2.2.6 之 .xml文件数据读取
查看>>
枚举的使用
查看>>
BZOJ 1531 二进制优化多重背包
查看>>
BZOJ 2324 (有上下界的)费用流
查看>>
python3基础06(随机数的使用)
查看>>
Zookeeper系列(二)特征及应用场景
查看>>
【HTTP】Fiddler(三)- Fiddler命令行和HTTP断点调试
查看>>
Spring Boot使用Druid和监控配置
查看>>
poi 处理空单元格
查看>>
Android 内存泄漏优化总结
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>
Spring Cloud微服务笔记(五)Feign
查看>>
C语言键盘按键列表
查看>>
Codeforces Round #374 (Div. 2)
查看>>
oracle数据类型
查看>>
socket
查看>>
Vue中使用key的作用
查看>>
二叉索引树 树状数组
查看>>
日志框架--(一)基础篇
查看>>