In this chapter, we have covered quite a bit of information about asynchronous development with C# and. NET. We started by covering some of the ways to handle I/O-bound and CPU-bound operations in your applications.
Next, we created some practical examples that use the
Task<TResult> classes and discovered how to work with multiple
Task objects. You got some practical advice for interop between modern asynchronous code and legacy synchronous methods. Finally, we covered some of the most important rules to remember when working with asynchronous code and
In the next chapter, Chapter 6, you will learn the ins and outs of parallel programming in .NET using the Task Parallel Library (TPL) and learn how to the avoid common pitfalls of parallel programming.