Brandon Minnick of Microsoft talks about common mistakes when using async/await and offers solutions.
Who he is, what he does. What asynchronous programming is, calling code that will return an answer in the future; multithreading. How to make a synchronous method asynchronous, freeing the calling thread; what the compiler does with async code - awaits, switch statements, move next and try catch. Calling async from sync, don't use .Result() it's a blocking call, .Result() throws an aggregate exception; use .GetAwaiter().GetResult().