欢迎光临

木子屋

标题: 多次创建WebBrowser控件会导致应用程序占用内存居高不下

作者: dnawo

日期: 2015-01-19 03:22 PM

分类: Win编程

内容: 今天发现刚写的WinForm应用程序占用内存不正常，经分析测试发现是由于多次创建WebBrowser控件导致，为了便于说明问题，下边是简化后的代码：
Form1.cs：
复制内容到剪贴板 程序代码public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
(new Form2()).Show();
}
}
Form2.cs：
复制内容到剪贴板 程序代码public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://www.taobao.com/");
}
}
查阅MSDN有如下说明：
引用内容 WebBrowser 控件会占用大量资源。 使用完该控件后一定要调用 Dispose() 方法，以便确保及时释放所有资源。 必须在附加事件的同一线程上调用 Dispose() 方法，该线程应始终是消息或用户界面 (UI) 线程。
然而实际测试Dispose方法并不能让内存降下来，目前没找到好的解决方法，后又测试发现在同一WebBrowser控件中打开不同页面，内存基本保持在一定的范围，因此：应避免多次创建WebBrowser控件，尽量在同一WebBrowser控件打开页面。
参考资料
[1].WebBrowser 类：http://msdn.microsoft.com/zh-cn/library/system.windows.forms.webbrowser.aspx

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.664 ms

返回

标题: 多次创建WebBrowser控件会导致应用程序占用内存居高不下

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.664 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 1.719 ms

返回