解决WebBrowser控件会导致应用程序占用内存居高不下问题
今天發(fā)現(xiàn)剛寫的WinForm應(yīng)用程序占用內(nèi)存不正常,經(jīng)分析測(cè)試發(fā)現(xiàn)是由于多次創(chuàng)建WebBrowser控件導(dǎo)致,為了便于說(shuō)明問(wèn)題,下邊是簡(jiǎn)化后的代碼:
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有如下說(shuō)明:
引用內(nèi)容
WebBrowser 控件會(huì)占用大量資源。 使用完該控件后一定要調(diào)用 Dispose() 方法,以便確保及時(shí)釋放所有資源。 必須在附加事件的同一線程上調(diào)用 Dispose() 方法,該線程應(yīng)始終是消息或用戶界面 (UI) 線程。
然而實(shí)際測(cè)試Dispose方法并不能讓內(nèi)存降下來(lái),目前沒(méi)找到好的解決方法,后又測(cè)試發(fā)現(xiàn)在同一WebBrowser控件中打開(kāi)不同頁(yè)面,內(nèi)存基本保持在一定的范圍,因此:應(yīng)避免多次創(chuàng)建WebBrowser控件,盡量在同一WebBrowser控件打開(kāi)頁(yè)面。
總結(jié)
以上是生活随笔為你收集整理的解决WebBrowser控件会导致应用程序占用内存居高不下问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 低聚异麦芽糖(说一说低聚异麦芽糖的简介)
- 下一篇: 网易邮箱邮件地址怎么填(网易邮箱地址怎么