 | Attaching Continuation Tasks to the UI Thread Parallel tasks can be used in Windows Forms and Windows Presentation Foundation applications to run slow processes without blocking the user interface thread. However, this presents a problem, as both systems prevent other threads from updating controls. |
 | AggregateException.WithoutCancellations Method Many parallel operations throw AggregateExceptions when problems occur. These may contain a mixture of real problems and exceptions thrown during cancellation. The WithoutCancellations extension method makes it easy to ignore the cancellation exceptions. |
 | Cancelling Parallel Loops The Task Parallel Library includes static methods that provide parallel equivalents of the for and foreach loops. As with parallel tasks, these loops can be cancelled by other processes using a system of cancellation tokens. |
 | Parallel LINQ The fifteenth and final part of the Parallel Programming in .NET tutorial leaves the examination of imperative programming using loops and tasks. It starts the description of declarative programming using Parallel Language-Integrated Query. |
 | 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. |