title: Is it possible to set the CultureInfo for an .NET application or just a thread?
body: <p>I've an application written in C# which has no GUI or UI, but instead writes files that are parsed by another application (in XML and others).</p>
  
  <p>I have a customer whose CultureInfo has the NumberDecimalSeparator set to a comma, which causes parsing errors with floating point numbers (PI would end up as <strong>3,1415</strong>).</p>
  
  <p>I'd like a way to set the CultureInfo globally within the application, for all threads.  I've tried:</p>
  
  <ol>
  <li>The (apparently) customary approach of setting <strong>CurrentThread.CurrentCulture</strong> as the first line in <em>Main()</em> but it appears to get reset.</li>
  <li>A variation/expansion on <a href="http://www.codeproject.com/KB/cs/Change_App_Culture.aspx" rel="noreferrer">http://www.codeproject.com/KB/cs/Change_App_Culture.aspx</a></li>
  <li>Do the same (#1) on the explicitly created threads in the application.</li>
  </ol>
  
  <p>And changing to use explicit formatting is not an option (150K+ lines, most written by former employees).</p>
  
  <p><strong>[Edit]</strong>
  The application binds to a socket and handles requests from dedicated clients.  Depending on the request type it spawns different handler classes.</p>
  
  <p>Sorry, when I first posted I should have clarified in #1 that (<em>I though</em>) I had done this in all of the handlers that were explicitly spawned, too.</p>
  
  <p><em>It turns out that I missed the thread/handler that was causing the problem.</em>  So the application is working properly now, but the question remains about if the culture can be set on all threads.</p>
  
  <p>If it could iterate over all threads, it would solve the issue, too.  So:</p>
  
  <p><strong>How can I get all <em>Thread</em> objects (not <em>ProcessThread</em>) in the current process?</strong></p>