You are most likely calling Result
(or Wait
) further up the call stack from Fetch
. This will cause a deadlock, as I explain on my blog and in a recent MSDN article.
For your second question, there is some overhead from async
, so for extremely fast asynchronous operations, the synchronous version will be faster. There is no way to tell whether this is the case in your code unless you do profiling.