作者songla1204 (TTP)
看板C_Sharp
标题[问题] Webbrowser 记忆体不足
时间Sat May 2 15:56:21 2015
大家好
我正在开发一个网路爬虫
能够一个一个进去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的记忆体清空呢?
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 182.234.150.68
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1430553383.A.F87.html
1F:推 johnpage: 加入搜寻深度 05/03 00:30
2F:→ songla1204: 不太懂 请问是什麽意思? 05/03 00:54
3F:推 Litfal: 不是有事件通知吗...为何要用轮询检查 05/03 13:39
4F:→ TobyH4cker: 你有出回圈吗? 05/04 16:17
5F:→ songla1204: 有出回圈 05/04 17:30
6F:→ pkmu8426: 设个条件, run几次以後让物件重新产生 或为空呢? 05/04 21:32
7F:→ pkmu8426: 如果你是用textbox 也要考虑这些元件承受长度的能力 05/04 21:35
8F:→ pkmu8426: 建议时时清暂存, 将捞回的资料写到txt之类的data 05/04 21:36
9F:→ pkmu8426: 有需要再捞出做处理。(除非你是要一次做全部统计) 05/04 21:37
10F:→ pkmu8426: 再没办法就朝垃圾回收(GC)看看有没解吧 05/04 21:38
11F:→ songla1204: 请问要怎麽让Webbrowser物件为空呢? 05/04 23:57
12F:→ songla1204: 我用webbrowser.dispose()释放资源後那个browser 05/04 23:58
13F:→ songla1204: 就不能用了 有办法让他reset吗? 05/04 23:58
14F:推 Litfal: 重新new,不过我更推荐整个程式restart (带参数执行自己, 05/05 01:15
15F:→ Litfal: 然後把自己关掉) 05/05 01:15
16F:→ Litfal: 不过这是最後一招,你应该先研究DocumentCompleted事件... 05/05 01:17
17F:→ songla1204: 好的 我研究看看 谢谢您 05/06 16:18