Why is that easier than using a blocking call directly on the Task object that ReadAsync returns? Like ".Return" or ".Wait"
In other words, the conditions you must satisfy for using Task.Wait or Task.Result are very complicated. They depend on and create global constraints of the entire program, and so you should avoid using them whenever possible.
0: http://blog.stephencleary.com/2012/07/dont-block-on-async-co...