[问题] Webbrowser 内存不足

楼主: songla1204 (TTP)   2015-05-02 15:56:21
大家好
我正在开发一个网络爬虫
能够一个一个进去google搜寻出来的结果网址
把网页的原始码抓下来分析
我的程式码大概如下
WebBrowser webBrowser = new WebBrowser();
while(1)
{
webBrowser.Navigate(_Url);
while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
Application.DoEvents();
string result = webBrowser.DocumentText;
.......
}
一直不断重复while(1)里面的事情(Google的结果很多)
但跑了一段时间
便会发生以下的状况
http://imgur.com/m15vYvi
意思应该是webbrowser这个元件的内存被塞满了
请问有没有办法让我将webbrowser的内存清空呢?
谢谢大家
作者: johnpage (johnpage)   2015-05-03 00:30:00
加入搜寻深度
楼主: songla1204 (TTP)   2015-05-03 00:54:00
不太懂 请问是什么意思?
作者: Litfal (Litfal)   2015-05-03 13:39:00
不是有事件通知吗...为何要用轮询检查
作者: TobyH4cker (Toby (我要当好人))   2015-05-04 16:17:00
你有出循环吗?
楼主: songla1204 (TTP)   2015-05-04 17:30:00
有出循环
作者: pkmu8426 (巴426)   2015-05-04 21:32:00
设个条件, run几次以后让物件重新产生 或为空呢?如果你是用textbox 也要考虑这些元件承受长度的能力建议时时清暂存, 将捞回的资料写到txt之类的data有需要再捞出做处理。(除非你是要一次做全部统计)再没办法就朝垃圾回收(GC)看看有没解吧
楼主: songla1204 (TTP)   2015-05-04 23:57:00
请问要怎么让Webbrowser物件为空呢?我用webbrowser.dispose()释放资源后那个browser就不能用了 有办法让他reset吗?
作者: Litfal (Litfal)   2015-05-05 01:15:00
重新new,不过我更推荐整个程式restart (带参数执行自己,然后把自己关掉)不过这是最后一招,你应该先研究DocumentCompleted事件...
楼主: songla1204 (TTP)   2015-05-06 16:18:00
好的 我研究看看 谢谢您

Links booklink

Contact Us: admin [ a t ] ucptt.com