博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决WebBrowser控件会导致应用程序占用内存居高不下问题
阅读量:4985 次
发布时间:2019-06-12

本文共 869 字,大约阅读时间需要 2 分钟。

WebBrowser 是一个 .NET 控件类,在 .NET Framework 2.0 版中新增。WebBrowser 类使用户可以在窗体中导航网页,下面我们来看在开发中碰到WebBrowser控件会导致应用程序占用内存居高不下问题解决方法.

今天发现刚写的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.cn.cn/");
    }
}

\'解决WebBrowser控件会导致应用程序占用内存居高不下问题\'

 

查阅MSDN有如下说明:

引用内容

WebBrowser 控件会占用大量资源。 使用完该控件后一定要调用 Dispose() 方法,以便确保及时释放所有资源。 必须在附加事件的同一线程上调用 Dispose() 方法,该线程应始终是消息或用户界面 (UI) 线程。

然而实际测试Dispose方法并不能让内存降下来,目前没找到好的解决方法,后又测试发现在同一WebBrowser控件中打开不同页面,内存基本保持在一定的范围,因此:应避免多次创建WebBrowser控件,尽量在同一WebBrowser控件打开页面。

转载于:https://www.cnblogs.com/soundcode/p/11026677.html

你可能感兴趣的文章
C++静态成员变量和静态成员函数小结
查看>>
Python---Flask--02--模板
查看>>
PHP学习笔记---封装(面向对象三大特性之一)
查看>>
如何快速找到指定端口被哪个程序占用并释放该端口(解决bindException)
查看>>
迭代之while循环(1)
查看>>
final修饰的类有什么特点
查看>>
关于string类中find函数的讲解
查看>>
程序员的情书
查看>>
Spring Cloud Eureka 使用 IP 地址进行服务注册
查看>>
Python 包的制作(__init__.py)
查看>>
java内存模型优化建议
查看>>
三十、模块补充
查看>>
流程审批设计
查看>>
别装了,你根本就不想变成更好的人
查看>>
数据库 join
查看>>
AES加密工具类[亲测可用]
查看>>
方法区
查看>>
Django-----ORM
查看>>
ARCGIS部分刷新
查看>>
发 零 食
查看>>