title: Getting list of currently active managed threads in .NET?
body: <p>For a "log information for support" type of function I'd like to enumerate and dump active thread information.</p>
  
  <p>I'm well aware of the fact that race conditions can make this information semi-inaccurate, but I'd like to try to get the best possible result, even if it isn't 100% accurate.</p>
  
  <p>I looked at Process.Threads, but it returns ProcessThread objects, I'd like to have a collection of Thread objects, so that I can log their name, and whether they're background threads or not.</p>
  
  <p>Is there such a collection available, even if it is just a snapshot of the active threads when I call it?</p>
  
  <p>ie.</p>
  
  <pre><code>Thread[] activeThreads = ??
  </code></pre>
  
  <p>Note, to be clear, I am <strong>not</strong> asking about Process.Threads, this collection gives me a lot, but not all of what I want. I want to know how much time specific named threads in our application is currently using (which means I will have to look at connecting the two types of objects later, but the names is more important than the CPU time to begin with.)</p>