title: C# application terminates unexpectedly
body: <p>We run a C# console application that starts multiple threads to do work.  The main function looks something like this:</p>
  
  <pre><code>try
  {
      DoWork();
  }
  catch (Exception err)
  {
      Logging.Log("Exception " + err.ToString());
  }
  Logging.Log("Finished");
  </code></pre>
  
  <p>The <code>DoWork()</code> function reads new jobs from a database, and spawns threads to process one work item each.  Since last week, the application has started disappearing mysteriously.  It disappears from the processes list and there is no entry in the event logs.  The log file shows work up to a certain point: it does not log an exception, or the "Finished" line.</p>
  
  <p>Any clue(s) on how a C# application can vanish like that?</p>
  
  <p>EDIT: Threads are created like:</p>
  
  <pre><code>new Thread(SomeObj.StartFunc).Start();
  </code></pre>
  
  <p>Some of the disappearances occur when no threads are running.</p>
  
  <p>P.S. We installed DebugDiag with a rule to create a crash dump whenever our program crashed.  It did not create any dump files when the process disappeared.</p>