title: F# how to run several asynchrous tasks and wait for result of first completed?
body: <p>There are many examples how to execute async tasks in f# like</p>
  
  <pre><code>[dowork 1; work 2]
  |&gt; Async.Parallel
  |&gt; Async.RunSynchronously
  </code></pre>
  
  <p>But how I can asynchronously wait for only the first result? </p>
  
  <p>For example if I want to run some parallel look up tasks and I want to search deeper when the first successful result is obtained. (Basically the equivalent as <code>Task.WhenAny</code> in the C# world...)</p>