title: Is calling await multiple time on the same task bad for performance
body: <p>Is it bad practice to call await on a task that has already been waited on? Is it bad for performance? </p>
  
  <pre><code>class SomeClass 
  { 
     string Prop1; 
     string Prop2; 
  }
  
  public void SomeMethod()
  {
      Task&lt;SomeClass&gt;[] someClassInstanceTasks = Task&lt;SomeClass&gt;[10];
      foreach(var task in someClassInstanceTasks)
      {
          task = GetSomeClassInstanceAsync();
      }
  
      someClassInstanceTasks.WaitAll();
  
      SomeClass someClassInstance =  someClassInstanceTasks[0].Result;
       //OR (which is recommended)
      SomeClass someClassInstance =  await someClassInstanceTasks[0];
  }
  </code></pre>
  
  <p>Personally, I prefer the await approach as an additional safeguard in case someone introduced a bug and mucked with the WaitAll() statement.</p>