title: Difference between Task and async Task
body: <p>C# provides two ways of creating asynchronous methods: </p>
  
  <p><strong><code>Task()</code>:</strong> </p>
  
  <pre class="lang-cs prettyprint-override"><code>static Task&lt;string&gt; MyAsyncTPL() {
    Task&lt;string&gt; result = PerformWork();
    return result.ContinueWith(t =&gt; MyContinuation());
  }
  </code></pre>
  
  <p><strong><code>async Task()</code>:</strong></p>
  
  <pre class="lang-cs prettyprint-override"><code>static async Task&lt;string&gt; MyAsync() {
    string result = await PerformWork();
    return MyContinuation();
  }
  </code></pre>
  
  <p>Both of the above methods are <code>async</code> and achieve the same thing. So, when should I choose one method over the other? Are there any guidelines or advantages of using one over the other?</p>