我有一个每 1/10 秒运行一次的计时器(Interval = 100
)。它处于无限循环中,因为我想在我的WebBrowser
控件上加载一个站点并在每次加载时将信息获取到一个跨度 ID。我的问题是如果这个进程运行了很长时间,就会出现内存泄漏。
在 30 分钟内,内存使用量可以达到 800MB 或更多。如何防止我的程序在运行时不断使用更多内存?
这是相关的代码。它还不包括任何进程创建代码。
private void buttonBid_Click(object sender, EventArgs e)
{
ID = Convert.ToInt32(textBoxID.Text);
getItem();
return;
}
private void getItem()
{
webBrowser.Url = new Uri("http://www.test.com/?id=" + ID);
webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;
return;
}
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
timerLoad.Start();
return;
}
private void timerLoad_Tick(object sender, EventArgs e)
{
var elem = webBrowser.Document.GetElementById("product_" + ID);
textBoxProduct.Text = Convert.ToString(elem.InnerText);
timerLoad.Dispose();
timerLoad.Start();
}