Even though I work on .NET interop and WinRT these days, async/await is still the one topic that gets me confused from time to time. It's a great concept logically but difficult to grasp once you start thinking about how the actual code flow goes (and all hell breaks loose once you start debugging the async code under WinDbg, without the help of Visual Studio). Found this great series talk by Lucian called 'Six Essential Tips for Async' on channel 9 and it clarified many of my confusions. Here is the link : 

http://channel9.msdn.com/Series/Three-Essential-Tips-for-Async