title: await Task doesn't capture Synchronization Context
body: <p>I am trying to play around with <code>ExecutionContext</code> and <code>SynchronizationContext</code>.</p>
  <p>I am using WinForms and .NET Framework 4.5.</p>
  <p>Here's my code</p>
  <pre class="lang-cs prettyprint-override"><code>private async void button1_Click(object sender, EventArgs e)
  {
      var capturedExecutionContext = ExecutionContext.Capture();
      await Task.Run(() =&gt;
      {
          ExecutionContext.Run(capturedExecutionContext, async (state) =&gt;
          {
              // capturedSyncContext is not null
              var capturedSyncContext = SynchronizationContext.Current;
  
              await Task.Delay(3000);
  
              SynchronizationContext.Current.Post((state) =&gt; {
                  lblHelloWorld.Text = &quot;Nice&quot;;
              }, null);
  
          }, null);
      });
  }
  </code></pre>
  <p><code>capturedSyncContext</code> is not <code>null</code> as expected because the <code>ExecutionContext</code> is already captured it.</p>
  <p>However, after the await statement, <code>SynchronizationContext.Current</code> returns <code>null</code>.</p>
  <p>I believe that, the <code>SynchronizationContext</code> should be captured when you await a Task awaiter.</p>
  <p>So why <code>SynchronizationContext</code> is null in this case ?</p>