After Task.IsCompleted what is better: await or Result : <p>I'm working in a simple timeout code for my http requests. I got this</p>

<pre><code>private async Task&lt;HttpResponseMessage&gt; ExecuteIOTask(Task&lt;HttpResponseMessage&gt; ioTask, int timeout)
    {
        var timeoutTask = await Task.WhenAny(Task.Delay(timeout), ioTask);

        if (ioTask.IsCompleted)
            return ioTask.Result;

        throw new TimeoutException();
    }
</code></pre>

<p>After IsCompleted, is there any difference using <code>Result</code> vs <code>await</code> ? The task is already completed at that instance, so I think the performance should be the same. But i'm a little concern about the exception handling. I think <code>Result</code> is not going to propagate the exceptions but <code>await</code> will.</p>

<p>Is this correct?</p>
