title: Reactive Extensions swallows exceptions from OnNext() called on a thread pool thread?
body: <p>I use Rx 2 in .Net 4.5.  When the following code runs, it just exits silently without executing the OnCompleted delegate or showing any errors.  If I use <code>Scheduler.CurrentThread</code> in <code>ToObservable</code>, it will at least throw the error and terminate the program, at which point not executing OnCompleted makes sense.  But when this is executed in a thread other than the main one, this behavior seems unreasonable and unacceptable.  Do I miss anything?</p>
  
  <pre><code>static void Main()
  {
       Enumerable.Range(0, 1)
                             .ToObservable(Scheduler.Default)
                             .Subscribe(o =&gt; { throw new Exception("blah"); }, () =&gt; Console.WriteLine("completed"));
  
       Thread.Sleep(2000);
   }
  </code></pre>
  
  <p><strong>Edited:</strong>
  Yes, when running as a console app, it will always throw the error regardless of what thread the observation is executed on.</p>
  
  <p>However, when I run this code as a test in NUnit as follows, it exits silently after 2 seconds (thread sleep time) without any error or message (expecting "completed").  So is it actually NUnit causing the issue?</p>
  
  <pre><code>[TestFixture]
  class Program
  {
      [Test]
      public void Test()
      {
          Enumerable.Range(0, 1)
                  .ToObservable(Scheduler.Default)
                  .Subscribe(
                      o =&gt; { throw new Exception("blah"); }, 
                      () =&gt; Console.WriteLine("completed"));
          Thread.Sleep(2000);
      }
  }
  </code></pre>