Winform WebBrowser长时间使用内存爆表,该如何处理
Winform WebBrowser长时间使用内存爆表
winform上拖一个控件WebBrowser
写一个定时器 每隔10秒让这个WebBrowser打开http://www.baidu.com这个页面
1个小时候发现这个Winform内存增长了100M
首先说 自己写的代码没有内存泄露 是这个WebBrowser里面有大量的内存释放不了
调用GC无效 销毁WebBrowser对象 无效
最终这100M的内存要关闭进程后,才能释放
如何解决这样的问题 WebBrowser导致内存泄露
------解决思路----------------------
WebBrowser 做采集。 我也是醉了。
------解决思路----------------------

WebBrowser是非托管代码。
销不得。。
------解决思路----------------------
为啥要用这玩意,内存不能释放是个老bug了,据说ie8内核没这个问题,不知道真假。
有网友从程序模式的思路上提供了二种解决方案:
1,建立线程,动态创建WebBrowser,再试用完后freeandnil,线程销毁WebBrowser所占用的内存也随即销毁~
2,建立多程序,通过程序1,调用程序2进行页面访问,当操作完后,程序2退出,内存自动清除回收,程序与程序之间的信息交互可通过ini文件的读取和保存~
https://support.microsoft.com/zh-cn/kb/943510/zh-cn
------解决思路----------------------
估计是销毁WebBrowser可以释放内存。
winform上拖一个控件WebBrowser
写一个定时器 每隔10秒让这个WebBrowser打开http://www.baidu.com这个页面
1个小时候发现这个Winform内存增长了100M
首先说 自己写的代码没有内存泄露 是这个WebBrowser里面有大量的内存释放不了
调用GC无效 销毁WebBrowser对象 无效
最终这100M的内存要关闭进程后,才能释放
如何解决这样的问题 WebBrowser导致内存泄露
------解决思路----------------------
WebBrowser 做采集。 我也是醉了。
------解决思路----------------------
WebBrowser是非托管代码。
销不得。。
------解决思路----------------------
为啥要用这玩意,内存不能释放是个老bug了,据说ie8内核没这个问题,不知道真假。
有网友从程序模式的思路上提供了二种解决方案:
1,建立线程,动态创建WebBrowser,再试用完后freeandnil,线程销毁WebBrowser所占用的内存也随即销毁~
2,建立多程序,通过程序1,调用程序2进行页面访问,当操作完后,程序2退出,内存自动清除回收,程序与程序之间的信息交互可通过ini文件的读取和保存~
https://support.microsoft.com/zh-cn/kb/943510/zh-cn
------解决思路----------------------
估计是销毁WebBrowser可以释放内存。