【发布时间】:2015-04-08 10:24:42
【问题描述】:
我正在使用 C# 和 Gecko Web 浏览器来开发应用程序。我发现即使表单上只有一个 GeckoWebBrowser 并一次又一次地导航到一些视频页面,应用程序会创建越来越多的线程,并且在我多次切换这些页面后应用程序会崩溃。这是我的 C# 代码:
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "http://news.qq.com";
string xulrunnerPath = "e:\\vm_tmp\\firefox\\xulrunner\\";
Gecko.Xpcom.Initialize(xulrunnerPath);
}
private void button1_Click(object sender, EventArgs e)
{
if (null == browser)
{
browser = new GeckoWebBrowser();
Controls.Add(browser);
browser.Parent = this;
this.Tag = browser;
browser.Location = new System.Drawing.Point(1, 100);
browser.Name = "webControl1";
browser.Size = new System.Drawing.Size(1280, 960);
browser.TabIndex = 0;
browser.Visible = true;
browser.BringToFront();
}
browser.Navigate(textBox1.Text);
}
这是我的 html 代码:
<body style="padding: 0px; margin: 0px 0px;">
<center>
<video id="video" width="100%" autoplay="autoplay" controls="controls" loop="loop">
<source src='movie/1.mp4' type='video/mp4' ></source>
</video>
</center>
</body>
</html>
在进行导航之前是否需要进行任何资源清理(在 xulrunner 或 GeckoWebBrowser 中)?我还在 Firefox 中测试这些页面。当我开始切换这些页面时,Firefox 也会创建越来越多的线程并吃掉越来越多的内存。但是几次之后,Firefox 会释放一些线程和内存。所以内存的使用量增长非常缓慢。但是我在我的 C# 应用程序中找不到这种情况。
【问题讨论】:
-
如何声明
browser变量?
标签: c# memory browser gecko xulrunner