 | Task Cancellation The fourteenth part of the Parallel Programming in .NET tutorial examines how parallel tasks are cancelled. This includes stopping single tasks, co-ordinating the cancellation of multiple tasks and dealing with tasks that are cancelled before they start. |
 | Child Tasks The thirteenth part of the Parallel Programming in .NET tutorial describes the use of attached child tasks. Like nested tasks, these are created within the scope of an existing parallel task. The difference is that child tasks are linked to their parents. |
 | Nested Tasks The twelfth part of the Parallel Programming in .NET tutorial looks at the ability for tasks to be nested. A nested task is one that is created and executed within the delegate of another. Nested tasks are not linked to their parent tasks. |
 | Continuation Tasks The eleventh part of the Parallel Programming in .NET tutorial considers the use of continuation tasks. These are parallel tasks that start automatically when one or more other tasks complete, allowing a chain of dependent tasks to be executed correctly. |
 | Obtaining Results from Parallel Tasks The tenth part of the Parallel Programming in .NET tutorial examines the generic Task<T> class. This is a subclass of the Task class seen previously that permits a result to be generated and accessed from the calling thread. |
 | Waiting for Parallel Tasks to Complete The ninth part of the Parallel Programming in .NET tutorial considers that the parallel nature of tasks means that it is not possible to assume that tasks have completed. It describes how to synchronise tasks and capture their unhandled exceptions. |
 | Creating Parallel Tasks The eighth part of the Parallel Programming in .NET tutorial starts an examination of the Task class. This allows the programmer to explicitly create tasks designed for parallel execution. This initial article explains how tasks are instantiated and run. |
 | Using Parallel.Invoke The seventh part of the Parallel Programming in .NET tutorial starts a look at the options that the Task Parallel Library provides for task decomposition. This article describes the Parallel.Invoke method, which can execute several delegates in parallel. |
 | Exceptions and Parallel Loops The sixth part of the Parallel Programming in .NET tutorial is the last instalment that examines the parallel loops. This article discusses how exceptions are thrown by code within a parallel loop and how they can be handled. |
 | Synchronisation in Parallel Loops The fifth part of the Parallel Programming in .NET tutorial continues the description of parallel loops. This article looks at the synchronisation problems of aggregation in parallel loops and how to overcome them with locking and local state values. |