使用WebBrowser控件開發的程序,佔用內存會隨着時間不停增加,最終內存溢出致使崩潰。究其緣由是因爲其自身的缺陷形成的。每一次加載新頁面,WebBrowser就會多佔用10-20M內存,有資料說是由於其內在的機制沒有釋放而致使的。這是微軟認可的已知BUG,具體的修復補丁點此下載(此補丁彷佛只支持XP、200三、Vista)。html
《WebBrowser 控件 內存溢出(泄露) 解決方案彙總》這篇文章中給出了幾個解決辦法,具體的內容以下:spa
1.創建線程,動態建立WebBrowser,再試用完後freeandnil,線程銷燬WebBrowser所佔用的內存也隨即銷燬。線程
2.創建多程序,經過程序1,調用程序2進行頁面訪問,當操做完後,程序2退出,內存自動清除回收,程序與程序之間的信息交互可經過ini文件的讀取和保存。orm
3.把IE升級到IE8,若是是使用的VB6開發的程序,能夠修改註冊表,使程序可以正常運行。修改腳本以下:htm
我親自嘗試過第二個解決方案,可是我並無使用ini文件進行讀取和保存信息,而是採用的調用Window API跨進程傳遞信息來解決的,能夠參考這篇文章《Winform跨進程通信》。blog