I have a timer running every 1/10 second (Interval = 100). It is in an infinte loop because I want to load a site on my WebBrowser control and get info into a span ID each time it loads. My problem is if this process runs for a long time, it'll be a memory leak.
In 30 minutes, memory usage can be 800MB or more. How do I prevent my program from continuously using more memory as it runs?
Here is the relevent code. It does not include any of the process creation code yet.
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();
}
 
     
     
     
    