解決WebBrowser控件會導致應用程序占用內存居高不下問題


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.jquerycn.cn/");
    }
}

\'解決WebBrowser控件會導致應用程序占用內存居高不下問題\'

 

查閱MSDN有如下說明:

引用內容
WebBrowser 控件會占用大量資源。 使用完該控件后一定要調用 Dispose() 方法,以便確保及時釋放所有資源。 必須在附加事件的同一線程上調用 Dispose() 方法,該線程應始終是消息或用戶界面 (UI) 線程。

然而實際測試Dispose方法並不能讓內存降下來,目前沒找到好的解決方法,后又測試發現在同一WebBrowser控件中打開不同頁面,內存基本保持在一定的范圍,因此:應避免多次創建WebBrowser控件,盡量在同一WebBrowser控件打開頁面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM