当前位置:编程学习 > C#/ASP.NET >>

.net网页采集程序内存越来越大,无法释放

--------------------编程问答-------------------- 用httpwebrequest而不是webbrowser(包括mshtml) --------------------编程问答-------------------- 楼上方法可以试试 --------------------编程问答-------------------- 这个必须得用这种 方法,如果用webrequest返回的都是html+json串,用htmldocument才能返回json排版后的html --------------------编程问答--------------------
引用 1 楼 devmiao 的回复:
用httpwebrequest而不是webbrowser(包括mshtml)

为什么呢?  --------------------编程问答--------------------
引用 4 楼 codepat 的回复:
Quote: 引用 1 楼 devmiao 的回复:

用httpwebrequest而不是webbrowser(包括mshtml)

为什么呢? 

webbrowser因为处理编写不完善的js而存在内存泄漏的可能。 --------------------编程问答-------------------- 你的代码有几个问题需要注意:
首先你的lock的使用,基本上你的多线程就废了
其次
   while (htmldoc2.readyState != "complete")
                        continue;
                    Thread.Sleep(4000);
建议修改为:
   while (htmldoc2.readyState != "complete")
   {
       Thread.Sleep(4000);
   } --------------------编程问答--------------------
你开了几百个现成 是不是把内存吃玩了 然后程序G了  另外你用的是线程池吗? --------------------编程问答-------------------- 我也碰到同样问题,不知道如何销毁 --------------------编程问答--------------------
引用 1 楼 devmiao 的回复:
用httpwebrequest而不是webbrowser(包括mshtml)


这个是真理。现在不管wpf,winform还是外在ie,chrom,只要你程序不关,你在切换地址时,内存会一直上涨的。目前还没有办法解决。

而我们网页数据采集,用的是httpwebrequest,而不用webBrowser控件
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,