title: Is ConfigureAwait(true) always get back to the orignial thread, even when the callee method does ConfigureAwait(false) internally?
body: <p>I was expecting to get back to Thread#1 at location 1.2, but I did not. Is there a way to get back to UI thread after making the async call? Thanks</p>
  
  <p>Also I cannot make the top level method async. Not sure if async all the way will solve this issue but I don't have that choice right now.</p>
  
  <pre><code>class Program
  {
      static void Main(string[] args)
      {
          ComputeThenUpdateUI().Wait();
      } 
      static async Task ComputeThenUpdateUI()
      {
          Console.WriteLine($"1.1 {Thread.CurrentThread.ManagedThreadId}");
          await ExpensiveComputingNonUI().ConfigureAwait(true);
          Console.WriteLine($"1.2 {Thread.CurrentThread.ManagedThreadId}");
      } 
      static async Task ExpensiveComputingNonUI()
      {
          Console.WriteLine($"2.1 {Thread.CurrentThread.ManagedThreadId}");
          await Task.Delay(3000).ConfigureAwait(false);
          Console.WriteLine($"2.2 {Thread.CurrentThread.ManagedThreadId}");
          await Task.Delay(3000).ConfigureAwait(false);
          Console.WriteLine($"2.3 {Thread.CurrentThread.ManagedThreadId}");
      }
  }
   
   
  Output:
  1.1 1
  2.1 1
  2.2 4
  2.3 4
  1.2 4
  </code></pre>
  
  <p></p>