title: throw original exception inside Parallel methods instead of aggregate exception
body: <p>I have two CPU-intensive methods inside a <code>Parallel.Invoke</code> call:</p>
  
  <pre><code>Parallel.Invoke(
      () =&gt; { GetMaxRateDict(tradeOffObj); },
      () =&gt; { GetMinRateDict(tradeOffObj); }
  );
  </code></pre>
  
  <p>For a MCVE, assume:</p>
  
  <pre><code>public void GetMaxRateDict(object junk)
  {
      throw new Exception("Max exception raised, do foo...");
  }
  public void GetMinRateDict(object moreJunk)
  {
      throw new Exception("Min exception raised, do bar...")
  }
  </code></pre>
  
  <p>I throw different exceptions in each of these inner methods. However, if one of these gets thrown, the Parallel wrapper throws a more generic exception: "One or more errors occurred", which is specific enough to show in my UI layer.</p>
  
  <p>Can I grab the original exception somehow and throw it instead?</p>
  
  <p>I would like the Parallel task to stop entirely if possible to raise the inner exception, but if that's not possible, at least being able to raise it once the two methods complete is what I need. Thanks.</p>