看板 C_Sharp 關於我們 聯絡資訊
大家好 我正在開發一個網路爬蟲 能夠一個一個進去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://www.ptt.cc/bbs/C_Sharp/M.1430553383.A.F87.html
johnpage: 加入搜尋深度 05/03 00:30
songla1204: 不太懂 請問是什麼意思? 05/03 00:54
Litfal: 不是有事件通知嗎...為何要用輪詢檢查 05/03 13:39
TobyH4cker: 你有出迴圈嗎? 05/04 16:17
songla1204: 有出迴圈 05/04 17:30
pkmu8426: 設個條件, run幾次以後讓物件重新產生 或為空呢? 05/04 21:32
pkmu8426: 如果你是用textbox 也要考慮這些元件承受長度的能力 05/04 21:35
pkmu8426: 建議時時清暫存, 將撈回的資料寫到txt之類的data 05/04 21:36
pkmu8426: 有需要再撈出做處理。(除非你是要一次做全部統計) 05/04 21:37
pkmu8426: 再沒辦法就朝垃圾回收(GC)看看有沒解吧 05/04 21:38
songla1204: 請問要怎麼讓Webbrowser物件為空呢? 05/04 23:57
songla1204: 我用webbrowser.dispose()釋放資源後那個browser 05/04 23:58
songla1204: 就不能用了 有辦法讓他reset嗎? 05/04 23:58
Litfal: 重新new,不過我更推薦整個程式restart (帶參數執行自己, 05/05 01:15
Litfal: 然後把自己關掉) 05/05 01:15
Litfal: 不過這是最後一招,你應該先研究DocumentCompleted事件... 05/05 01:17
songla1204: 好的 我研究看看 謝謝您 05/06 16:18