title: How to make Task.WaitAll() to break if any exception happened?
body: <p>I want to make Task.WaitAll() to break out if any of the running tasks throws an exception, so that I don't have to wait for 60 seconds to finish. How do I achieve such behavior? If WaitAll() cannot achieve that, is there any other c# feature or workaround?</p>
  
  <pre><code>Task task1 = Task.Run(() =&gt; throw new InvalidOperationException());
  Task task2 = ...
  ...
  try
  {
      Task.WaitAll(new Task[]{task1, task2, ...}, TimeSpan.FromSeconds(60));
  }
  catch (AggregateException)
  {
      // If any exception thrown on any of the tasks, break out immediately instead of wait all the way to 60 seconds.
  }
  </code></pre>