title: Is there a callback for when a task is completed in Task.WhenAll
body: <p>Suppose I have the following:</p>
  
  <pre><code>IEnumerable&lt;Task&lt;TimeSpan&gt;&gt; tasks = //...
  TimeSpan[] results = await Task.WhenAll(tasks);
  // Handle results
  </code></pre>
  
  <p>By the time I can handle the results all the task must have finished.</p>
  
  <p>Is there a way to handle each result <em>on demand</em>?</p>
  
  <p>Like registering a delegate / callback that will get executed when a task is completed:</p>
  
  <pre><code>IEnumerable&lt;Task&lt;TimeSpan&gt;&gt; tasks = //...
  await Task.WhenAll(tasks, result =&gt;
  {
     // A task has finished. This will get executed.
     // result is of type TimeSpan
  });
  </code></pre>