使用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