title: multiple awaits vs Task.WaitAll - equivalent?
body: <p>In terms of performance, will these 2 methods run <code>GetAllWidgets()</code> and <code>GetAllFoos()</code> in parallel?</p>
  
  <p>Is there any reason to use one over the other? There seems to be a lot happening behind the scenes with the compiler so I don't find it clear.</p>
  
  <p>============= MethodA: Using multiple awaits ======================</p>
  
  <pre><code>public async Task&lt;IHttpActionResult&gt; MethodA()
  {
      var customer = new Customer();
  
      customer.Widgets = await _widgetService.GetAllWidgets();
      customer.Foos = await _fooService.GetAllFoos();
  
      return Ok(customer);
  }
  </code></pre>
  
  <p>=============== MethodB: Using Task.WaitAll =====================</p>
  
  <pre><code>public async Task&lt;IHttpActionResult&gt; MethodB()
  {
      var customer = new Customer();
  
      var getAllWidgetsTask = _widgetService.GetAllWidgets();
      var getAllFoosTask = _fooService.GetAllFos();
  
      Task.WaitAll(new List[] {getAllWidgetsTask, getAllFoosTask});
  
      customer.Widgets = getAllWidgetsTask.Result;
      customer.Foos = getAllFoosTask.Result;
  
      return Ok(customer);
  }
  </code></pre>
  
  <p>=====================================</p>