title: Does Thread.Sleep affect the ThreadPool?
body: <p>I need to control one thread for my own purposes: calculating, waiting, reporting, etc...<br>
  In all other cases I'm using the <code>ThreadPool</code> or TaskEx. </p>
  
  <p>In debugger, when I'm doing <code>Thread.Sleep()</code>, I notice that some parts of the UI are becoming less responsible. Though, without debugger seems to work fine.</p>
  
  <p>The question is: If I'm creating new Thread and <code>Sleep()</code>'ing it, can it affect ThreadPool/Tasks?</p>
  
  <p>EDIT: here are code samples:</p>
  
  <p>One random place in my app:</p>
  
  <pre><code>ThreadPool.QueueUserWorkItem((state) =&gt;
  {
      LoadImageSource(imageUri, imageSourceRef);
  });
  </code></pre>
  
  <p>Another random place in my app: </p>
  
  <pre><code>var parsedResult = await TaskEx.Run(() =&gt; JsonConvert.DeserializeObject&lt;PocoProductItem&gt;(resultString, Constants.JsonSerializerSettings));
  </code></pre>
  
  <hr>
  
  <p>My ConcurrentQueue (modified, original is taken from <a href="http://sharpsnippets.wordpress.com/2014/01/27/generic-concurrent-queue-1n/" rel="nofollow">here</a>):</p>
  
  <p>Creation of thread for Queue needs:</p>
  
  <pre><code>public void Process(T request, bool Async = true, bool isRecurssive = false)
  {
      if (processThread == null || !processThread.IsAlive)
      {
          processThread = new Thread(ProcessQueue);
          processThread.Name = "Process thread @ " + Environment.TickCount;
          processThread.Start();
      }
  </code></pre>
  
  <p>If one of the Tasks reports some networking problems, i want <strong>this</strong> thread to wait a bit</p>
  
  <pre><code>if (ProcessRequest(requestToProcess, true))
  {
      RequestQueue.Dequeue();
  }
  else
  {
      DoWhenTaskReturnedFalse();
      Thread.Sleep(3000);
  }
  </code></pre>
  
  <p>So, the question one more time: can <code>Thread.Sleep(3000);</code>, called from <code>new Thread(ProcessQueue);</code>, affect ThreadPool or TaskEx.Run() ?</p>