title: Any scenario where Task.ContinueWith(..., TaskScheduler.FromCurrentSynchronizationContext()) would *not* run on the UI thread?
body: <p>We are observing something strange, code like this:</p>
  
  <pre><code>var task = new Task(...); // run in the background, do something lengthy work
  task.ContinueWith(..., TaskScheduler.FromCurrentSynchronizationContext());
  task.Start();
  </code></pre>
  
  <p>The second task there calls an event, which in turn tries to update the GUI, and we get the dreaded cross-thread exception.</p>
  
  <p>Checking <code>Thread.CurrentThread.ManagedThreadId</code> from the method in the second task there indicates that it is in fact <em>not</em> running on the UI thread.</p>
  
  <p>The code that spawned the tasks <em>is</em> running on the UI thread.</p>
  
  <p>Is there any scenario where this will go wrong?</p>