In this chapter, we have discussed how to break up tasks into smaller units so that each unit can be handled independently by a thread. We have also learned about various ways we can create tasks by utilizing ThreadPool. We introduced various techniques related to the internal workings of tasks, including the concepts of work-stealing and task creation or cancellation. We will be utilizing the knowledge we gained in this chapter in the rest of this book.
In the next chapter, we will introduce the concepts of data parallelism. This will include working with parallel loops and handling exceptions in them.