用Ping类异步ping多个地址之后 虚拟内存不断的增加

问题描述

做了一个winform程序功能是每隔10秒ping多个地址看看通不通现在结果是程序ping完之后我释放内存GC.Collect();GC.WaitForPendingFinalizers();结果是内存释放了但是虚拟内存不断增加我用的如下方法做的异步pingbyte[]buffer=newbyte[Convert.ToInt32(CPublic.strDataSize)];for(inti=0;i<arPing.Count;i++){objectobj=arPing[i];ArrayListalTemp=(ArrayList)obj;objectobj1=alTemp[alTemp.Count-1];stringstrPingIp=(string)obj1;//构造Ping实例PingpingSender=newPing();pingSender.PingCompleted+=newPingCompletedEventHandler(this.PingCompletedCallBack);//设置PingCompleted事件处理程序pingSender.SendAsync(strPingIp,12000,buffer,null);//清理内存FlushMemory();}privatevoidPingCompletedCallBack(objectsender,PingCompletedEventArgse){//ping的结果处理}求高手指点一下或者如何做异步ping多个地址

解决方案

解决方案二:
虚拟内存增加不是问题,无需解决,
解决方案三:
越加越多到头之后不会报错么
解决方案四:
我用Process类调用ping命令在控制台执行,完全没有内存释放的问题,每次执行后就自动释放,执行结果让程序捕获判断即可。
解决方案五:
亲:你的异步线程Thread,释放了吗?
解决方案六:
classProgram{staticvoidMain(string[]args){Processpi=newProcess();pi.StartInfo.FileName="PING";pi.StartInfo.Arguments="192.168.0.1-n1";pi.StartInfo.RedirectStandardOutput=true;//默认将输出到控制台,这里为true后可以程序捕获输出。pi.StartInfo.UseShellExecute=false;Console.WriteLine("测试与XXX的连通性,每隔30秒与192.168.0.1握手一次。");while(true){pi.Start();Thread.Sleep(30000);}}}

解决方案七:
如题我想每30秒ping监测所加的IP地址通不通(差不多二三十个IP地址吧)并且还要将通与不通的缓存内容(像生存时间(TTL),缓冲区大小等)改如何来做

时间: 2024-09-19 14:57:01

用Ping类异步ping多个地址之后 虚拟内存不断的增加的相关文章

无法ping通一台交换机管理地址的问题

问题描述 无法ping通一台交换机管理地址的问题 各位老师,我有个问题想请教下.华为S5600以及连在上面的H3C交换划分为10.0.3.0网段,将H3C交换机设置了一个管理地址,我从华为S5600交换机上连接一台电脑能ping通H3C交换机管理地址,但从10.0.1.0网段一台电脑上无法ping通该地址,防火墙协议什么的都开了,想请教一般是什么原因无法通讯. 解决方案 不同的网段,有没有配置网桥? 解决方案二: 检查ACL之类的配置 解决方案三: 交换机s5600两个口不同的vlan?S560

linux如何禁ping和允许ping设置方法

  问题一:linux如何禁ping? 解决方法:[root@sliu ~]# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all. 问题二:linux如何允许ping? [root@sliu ~]# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all 解决方法:操作完即可查看效果,无需重启. 以上就是linux如何禁ping和允许ping设置方法了,希望对大家有些帮助吧!

c++-C++中 不能在类中访问this的地址

问题描述 C++中 不能在类中访问this的地址 如class a{ public: void show(){ cout<<&this; }}如果this是一个指针,为什么不能访问它的地址? 解决方案 首先要搞清楚this指针是存放在哪的?编译器在生成程序时加入了获取对象首地址的相关代码,并把获取的首地址存放在了寄存器ECX中(VC++编译器是放在ECX中,其它编译器有可能不同),也就是成员函数的其它参数正常都是存放在栈中,而this指针参数则是存放在寄存器中.寄存器不能像被外设寄存器

class-直接输出异常类对象是异常信息,而直接输出普通类对象却是存储地址?

问题描述 直接输出异常类对象是异常信息,而直接输出普通类对象却是存储地址? 1.Exception e System.out.print(e); 2.class A{...} A a = new A(); System.out.print(a); 为什么 1 会输出具体的异常信息,而 2 却输出的是存储地址? 解决方案 打印对象实际上调用对象的toString()方法 Exception类中的toString()方法public String toString()返加的是以下字符串的串联: 此对

求助:MVC4异步控制器中用异步PING功能检测网络连接状态遇到的问题

问题描述 小的是新手,在学习中想用MVC测试一下网络监控在异步控制器里使用了ping.SendPingAsync(ip,1000)这个方法去异步检测各网络现在的问题是,如果不使用AWAIT,异步线程还没结束时returnView()就执行了,前台页面得不到dict的数据:如果使用了AWAIT,因为在循环的时候SendPingAsync每次只PING一个IP,这样并没有起到异步作用,导制前台需要较长时间才能得到数据.查资料查得发吐,请问有没有办法把AWAIT弄到foreach外,让所有线程执行完后

关于Ping命令以及Ping命令的用法

  Ping概述: Ping 是Windows系列自带的一个可执行命令.利用它可以检查网络是否能够连通,可以很好地帮助我们分析判定网络故障.该命令只有在安装了 TCP/IP 协议后才可以使用.Ping命令的主要作用是通过发送数据包并接收应答信息来检测两台计算机之间的网络是否连通.当网络出现故障的时候,可以用这个命令来预测故障和确定故障地点.Ping命令成功只是说明当前主机与目的主机之间存在一条连通的路径.如果不成功,则考虑:网线是否连通.网卡设置是否正确.IP地址是否可用等. 需要注意的是:成功

linux禁ping和允许ping的方法

系统环境Centos5 一.系统禁止ping [root@linuxzgf ~]# echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all 二.系统允许ping [root@linuxzgf ~]# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all 此上两条命令的效果实时生效,可以用另外的机器ping来测试是否生效. ----------------------------------------------

linux下能ping ip不能ping域名详解

  今天在开发的同事来说,内网不能通过域名访问自己的服务器!然后做了下面的测试发现这样的问题: [root@itmop ~]# ping www.downcc.com ping: unknown host www.downcc.com [root@itmop ~]#ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 ti

C# 刚写的 HttpRequsetResponse 类,异步、事件... 还热乎着呢!(2003-

1.支持Proxy2.可指定同步或异步3.一些小修改//调用示例:private void button1_Click(object sender, System.EventArgs e)    {        HttpRequestResponse xx = new HttpRequestResponse();        xx.DataArrival += new DataArrivalEventHandler(xx_DataArrival);        //xx.SendReque