Async/Await - Best Practices in Asynchronous Programming
- Avoid async void except the top level event handlers
- Async all the way even the main function (with C# 7.1)
- Use
ConfigureAwait(false)
in library and let the consumer choose the context
For more details, see Stephen Cleary's blog post or Mads Torgerse's video