title: Cold observable's Scheduler.CurrentThread - in which thread will it run?
body: <p>I'm new to RX and starting to understand a few concepts.. that one I didn't find on the web.</p>
  
  <p>I'm using a timer in my code:</p>
  
  <pre><code>Observable.Timer(TimeSpan.FromSeconds(2), schedulerProvider.CurrentThread);
  // where schedulerProvider.CurrentThread is actually Scheduler.CurrentThread
  </code></pre>
  
  <p>I understand that Timer is a <strong>Cold Observable</strong>, and every subscriber will get its private timer that will run for 2 seconds from when it subscribed.</p>
  
  <p>I'm creating that cold observable in <strong><code>thread1</code></strong> and subscribing to it with <strong><code>thread2</code></strong> [,<strong><code>thread3</code></strong>, <strong><code>thread4</code></strong> etc...]</p>
  
  <p>So the question is: <strong>in which thread will it run?</strong></p>
  
  <p>Please provide a source.</p>
  
  <p>Thank you!</p>
  
  <p><strong>EDIT:</strong> Thanks for the detailed answer. Now I know that my question has an issue.The scheduler that passed as second parameter is <strong>NOT</strong> for subscribers scheduling, but for running the Timer.
  Most of RX operators runs on the same thread by default, but Timer is one (of several) exceptional. By default, the timer itself will run on the Thread Pool, and call OnNext on its same thread. If you ask it to use CurrentThread scheduler, the timer itself will run on the same thread (like most of Rx operators) and subscribers will be called on the same thread. (this is not very recommended though for regular use cases).</p>