<p>Here is my code: </p>

<pre><code>ThreadStart threadStart = controller.OpenFile;
Thread thread = new Thread(threadStart);
thread.Start();
</code></pre>

<p>In the OpenFile function, my code looks like:</p>

<pre><code>System.Console.Error.WriteLine("Launching");
</code></pre>

<p>The code in OpenFile doesn't get executed for 30 seconds exactly. It starts immediately on my machine, but in our production environment it takes 30 seconds before that print statement will execute.</p>

<p>Is there a setting or something that might be doing this? Where would I start looking?</p>

Do you have the same problem if you use other threading methods (for example, Threadpool)? This would tell if it's related to this method of threading, or to all methods. Also, is that WriteLine statement the only statement in your OpenFile procedure? 30 seconds is a common timeout length so maybe that's what's happening here.
Other than that, I'm not sure why the thread handler would pause for 30 seconds before processing.