title: Why does an async single task run faster than a normal single task?
body: <p>I have a method which has just one task to do and has to wait for that task to complete:</p>
  
  <pre><code>public async Task&lt;JsonResult&gt; GetAllAsync()
  {
      var result = await this.GetAllDBAsync();
      return Json(result, JsonRequestBehavior.AllowGet);
  }
  
  public async Task&lt;List&lt;TblSubjectSubset&gt;&gt; GetAllDBAsync()
  {
      return await model.TblSubjectSubsets.ToListAsync();
  }
  </code></pre>
  
  <p>It is significantly faster than when I run it without async-await.
  We know</p>
  
  <blockquote>
    <p>The async and await keywords don't cause additional threads to be
    created. Async methods don't require multithreading because an async
    method doesn't run on its own thread. The method runs on the current
    synchronization context and uses time on the thread only when the
    method is active</p>
  </blockquote>
  
  <p>According to this link: <a href="https://msdn.microsoft.com/en-us/library/hh191443.aspx#BKMK_Threads" rel="nofollow noreferrer">https://msdn.microsoft.com/en-us/library/hh191443.aspx#BKMK_Threads</a>. What is the reason for being faster when we don't have another thread to handle the job?</p>