Works for a while, but then trying to do something like processing serial async responses in a loop gets painful without async/await, i.e:
while (await reader.ReadAsync(cts)) { ... } while (await reader.ReadAsync(cts)) { ... }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...