title: How do I get a return value from an async method before the Task is completed
body: <p>I have these methods in a WCF web service.</p>
  
  <pre><code>public async Task&lt;bool&gt; DoAsyncWork()
  public List&lt;Progress&gt; GetProgress(string progressKey)
  </code></pre>
  
  <p>If it is possible I would like to get the progressKey from the DoAsyncWork method as soon the async work has started so I can show the progress to the user. The progress is saved in a database with the progressKey as a key for the work done by DoAsyncWork.</p>
  
  <p>What I understand it is not a good practice to have an out parameter in a WCF service. So </p>
  
  <pre><code>public async Task&lt;bool&gt; DoAsyncWork(out string progressKey)
  </code></pre>
  
  <p>is not a solution.</p>
  
  <p>The generic bool value is not returned until the Task has completed so I can't use the generic Task class to get the progressKey.</p>