In this chapter, we discussed two very important constructs that make writing asynchronous code very easy. All the heavy work is done by the compiler when we use these keywords, and the code looks very similar to its synchronous counterpart. We also discussed which thread the code runs on when we make methods asynchronous, and the performance penalty associated with utilizing SynchronizationContext. Finally, we looked at how we can turn off the SynchronizationContext completely to improve performance.
In the next chapter, we will introduce parallel debugging techniques using Visual Studio. We will also learn the tools available in Visual Studio to help in parallel code debugging.