title: Should one always keep a reference to a running Thread object in C#?
body: <p>Or is it okay to do something like this:</p>
  
  <pre><code>new Thread( new ThreadStart( delegate { DoSomething(); } ) ).Start();
  </code></pre>
  
  <p>?</p>
  
  <p>I seem to recall that under such a scenario, the Thread object would be garbage collected, but the underlying OS thread would continue to run until the end of the delegate passed into it. I'm basically looking for ThreadPool functionality, but don't want the threads to be background threads (i.e. I want them to keep the app alive).</p>
  
  <p><strong>Update:</strong> <br>
  According to Jason, the CLR actually keeps an internal reference to the Thread object, while running, so it won't be garbage collected until the thread exits.</p>