In this chapter, we discussed what asynchronous programming is and why it makes sense to write asynchronous code. We also discussed scenarios where asynchronous programming can be implemented and where it should be avoided. Finally, we covered various asynchronous patterns that have been implemented in TPL.
Asynchronous programming, if used correctly, can really enhance the performance of server-side applications by efficiently utilizing threads. It also improves the responsiveness of desktop/mobile applications.
In the next chapter, we will discuss the asynchronous programming primitives that are provided by the .NET Framework.