作者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/m.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