解决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/");
??? }
}
查閱MSDN有如下說明:
引用內容
WebBrowser 控件會占用大量資源。 使用完該控件后一定要調用 Dispose() 方法,以便確保及時釋放所有資源。 必須在附加事件的同一線程上調用 Dispose() 方法,該線程應始終是消息或用戶界面 (UI) 線程。
然而實際測試Dispose方法并不能讓內存降下來,目前沒找到好的解決方法,后又測試發現在同一WebBrowser控件中打開不同頁面,內存基本保持在一定的范圍,因此:應避免多次創建WebBrowser控件,盡量在同一WebBrowser控件打開頁面。
總結
以上是生活随笔為你收集整理的解决WebBrowser控件会导致应用程序占用内存居高不下问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 低聚异麦芽糖(说一说低聚异麦芽糖的简介)
- 下一篇: ApartmentState.STA