title: What c# async / await can do that a Task type can't?
body: <p>I am new to the async / await feature in C# and, after some study, I think I have understood pretty well what these keywords want to accomplish. But it comes to my mind this question:
  There are things that async / await make it possible that cannot be done using the Task type? Consider the follow example:</p>
  
  <pre class="lang-cs prettyprint-override"><code>static async Task&lt;int&gt; jobAsync()
  {
      // I could be writing here "await someTask()"
      await Task.Delay(2000);
      return 1;
  }
  
  static async void simpleAsync()
  {
      int i = await jobAsync();
      Console.WriteLine("Async done. Result: " + i.ToString());
  }
  
  static void simpleTask()
  {
      var t = Task.Run(() =&gt; { 
      //I could be writing here "return someTask();"
      Thread.Sleep(2000); return 1; });
      t.ContinueWith(tsk =&gt; { Console.WriteLine("Task done. Result: " + tsk.Result); });
  }
  </code></pre>
  
  <p>Now the two function "simpleTask()" and "simpleAsync()" gives the same result, for example if called into the Main method:</p>
  
  <pre class="lang-cs prettyprint-override"><code>static void Main(string[] args)
  {
      simpleTask();
      //simpleAsync();
      Console.WriteLine("Doing other things...");
      Console.ReadLine();
  }
  </code></pre>
  
  <p>Surely this is just a simple example, but what makes the async / await really useful? In what circumstances?
  Thank you.</p>