We've learned a lot in this chapter about parallelizing the execution of code, taking advantage of the .NET Parallel Extensions. We were able to combine different execution techniques with automatically parallelized structures that will be available in Visual Studio 2010. Specifically, we covered:
Downloading and installing .NET Parallel Extensions CTP
Combining asynchronous executions with synchronous parallelized loops and other automatically parallelized structures
Using delegates to make cross-thread calls, and safely update the user interface from independent tasks scheduled and coordinated by the .NET Parallel Extensions
Achieving scalability combining calls to third-party libraries in our parallel algorithms
Reducing the code needed to run tasks in parallel using the C# 3.0 lambda expressions
Running queries in parallel using PLINQ and multiple LINQ invocations
Creating producer-consumer schemes running in multiple threads without synchronization pains
Taking advantage of future improvements...