title: How async task doesn't block UI
body: <p>I have this code:</p>
  
  <pre><code>private async void Button_Click(object sender, RoutedEventArgs e)
  {
      Task&lt;int&gt; i = LongTaskAsync();    // first break point here
      int k = await i;
      print("Done, i=" + i);
  }
  private async Task&lt;int&gt; LongTaskAsync()
  {
      await System.Threading.Tasks.Task.Delay(5 * 1000); // second break point here
      return 10;
  }
  </code></pre>
  
  <p>When debugging, I knew that LongTaskAsync was running on UI thread. So, why it doesn't block UI and how?</p>