Winform WebBrowser长时间使用内存爆表

jiaoshiyao 2015-05-12 01:11:19
winform上拖一个控件WebBrowser
写一个定时器 每隔10秒让这个WebBrowser打开http://www.baidu.com这个页面
1个小时候发现这个Winform内存增长了100M
首先说 自己写的代码没有内存泄露 是这个WebBrowser里面有大量的内存释放不了
调用GC无效 销毁WebBrowser对象 无效
最终这100M的内存要关闭进程后,才能释放

如何解决这样的问题 WebBrowser导致内存泄露
...全文
825 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cyf1122 2015-09-17
  • 打赏
  • 举报
回复
@phommy ,请问一下,怎么丢到其他进程里面
jiaoshiyao 2015-05-13
  • 打赏
  • 举报
回复
引用 9 楼 dongxinxi 的回复:
System.Runtime.InteropServices.Marshal.ReleaseComObject(webBrowser.ActiveXInstance); webBrowser.Dispose();
额 保证管用?
  • 打赏
  • 举报
回复
System.Runtime.InteropServices.Marshal.ReleaseComObject(webBrowser.ActiveXInstance); webBrowser.Dispose();
phommy 2015-05-13
  • 打赏
  • 举报
回复
把webbrowser扔到其他进程里去,用完kill掉进程拉倒,绝无内存泄漏 最大的工作量可能在涉及到的进程间通讯,用消息或文件交换或网络端口都可以
宝_爸 2015-05-13
  • 打赏
  • 举报
回复
引用 6 楼 jiaoshiyao 的回复:
[quote=引用 5 楼 liucqa 的回复:] 1,建立线程,动态创建WebBrowser,再试用完后freeandnil,线程销毁WebBrowser所占用的内存也随即销毁~
销毁线程内存貌似不能跟着释放吧 [/quote] 估计是销毁WebBrowser可以释放内存。
jiaoshiyao 2015-05-13
  • 打赏
  • 举报
回复
引用 5 楼 liucqa 的回复:
1,建立线程,动态创建WebBrowser,再试用完后freeandnil,线程销毁WebBrowser所占用的内存也随即销毁~
销毁线程内存貌似不能跟着释放吧
泡泡龙 2015-05-13
  • 打赏
  • 举报
回复
为啥要用这玩意,内存不能释放是个老bug了,据说ie8内核没这个问题,不知道真假。 有网友从程序模式的思路上提供了二种解决方案: 1,建立线程,动态创建WebBrowser,再试用完后freeandnil,线程销毁WebBrowser所占用的内存也随即销毁~ 2,建立多程序,通过程序1,调用程序2进行页面访问,当操作完后,程序2退出,内存自动清除回收,程序与程序之间的信息交互可通过ini文件的读取和保存~ https://support.microsoft.com/zh-cn/kb/943510/zh-cn
jiaoshiyao 2015-05-12
  • 打赏
  • 举报
回复
引用 3 楼 wyd1520 的回复:
WebBrowser是非托管代码。 销不得。。
这内存要怎么释放
本拉灯 2015-05-12
  • 打赏
  • 举报
回复
WebBrowser是非托管代码。 销不得。。
jiaoshiyao 2015-05-12
  • 打赏
  • 举报
回复
引用 1 楼 wawd74520 的回复:
WebBrowser 做采集。 我也是醉了。
失落的神庙 2015-05-12
  • 打赏
  • 举报
回复
WebBrowser 做采集。 我也是醉了。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧