title: async await and Task in C#
body: <p>I'm testing the <strong>async await and task</strong> functionality but it seems i'm missing something</p>
  
  <p>When I write like this <strong>A being starting point</strong>.</p>
  
  <pre><code>void A()
  {
     Debug.WriteLine("pre B");
     B();
     Debug.WriteLine("post B");
  }
  
  async void B()
  {
      Debug.WriteLine("pre C");
      await C();
      Debug.WriteLine("post C")
  }
  
  async Task C()
  {
     await Task.Yield();
     Debug.WriteLine("pre D");
     await D();
     Debug.WriteLine("post D");
  }
  
  async Task D()
  {
     Debug.WriteLine("inside D");
  }
  </code></pre>
  
  <p>I get output in debug console as </p>
  
  <pre><code>pre B,
  pre C,
  pre D,
  inside D,
  post D,
  post C,
  post B
  </code></pre>
  
  <p>Is it running asynchronously?? I guess not, what thought it should run like</p>
  
  <pre><code>pre B,
  pre C,
  post B,
  post C,
  pre D,
  inside D,
  post D
  </code></pre>
  
  <p>So what's the problem here? </p>