title: Why does System.Threading.Timer stop on its own?
body: <p>I'm doing a small test project before I use <code>System.Threading.Timer</code> in a Windows Service project. It's working wonderfully, however the timer stops on its own after a minute or two.</p>
  
  <p>The full source for the test project is:</p>
  
  <pre><code>using System;
  using System.Windows.Forms;
  using System.Threading;
  
  namespace studyTimers {
      public partial class Form1 : Form {
          public Form1() {
              InitializeComponent();
          }
  
          private void Form1_Load(object sender, EventArgs e) {
              TimerCallback timerDelegate = new TimerCallback(tick);
              System.Threading.Timer testTimer = new System.Threading.Timer(timerDelegate, null, 1000, 1000);
          }
  
          void tick(Object obj) {
              if (label1.InvokeRequired) {
                  label1.Invoke(new MethodInvoker(() =&gt; tick(obj)));
              } else {
                  label1.Text = DateTime.Now.ToString();
              }
          }
      }
  }
  </code></pre>
  
  <p>The goal is obviously to update a label with the current time. I am noticing that updating stops after a bit. Why would this be?</p>