The document discusses parallel and concurrent programming models in .NET including the Task Parallel Library (TPL) and Parallel LINQ (PLINQ). It provides examples of how to use the TPL to start and compose tasks as well as cancel, wait for and continue tasks. It also lists programming models, data structures and tools included in the .NET framework to support parallel programming.
5. Program Thread CLR Thread Pool Global Queue Worker Thread 1 Worker Thread p
6. Program Thread Task 1 Task 2 Task 3 Task 5 Task 4 Task 6 CLR Thread Pool: Work-Stealing Worker Thread 1 Worker Thread p Global Queue Local Queue Local Queue
7.
8. ThreadPool ThreadPool .QueueUserWorkItem(…); System.Threading.Tasks Task .StartNew(…); Starting var p = Task .StartNew(() => { var t = Task .StartNew(…); }); Parent/Child var f = Future .StartNew(() => C()); … int result = f.Value; Tasks with results Task t = Task .StartNew(…); Task p = t.ContinueWith(…); t.Wait(2000); t.Cancel(); Continue/Wait/Cancel
9.
10.
11.
12.
13. var q = from p in people where p.Name == queryInfo.Name && p.State == queryInfo.State && p.Year >= yearStart && p.Year <= yearEnd orderby p.Year ascending select p;
14.
15.
16.
17. all PDC sessions Overview - why and how parallelism PLINQ screencast Other Ch9 PLINQ screencasts PLINQ MSDN article MSDN concurrency VS 2010 on Ch9 VS 2010 week Parallel Computing - Vision Daniel Moth blog
18.
19.
20.
21. F# tutorials F# MSDN Developer Center F# for Windows Azure F# Samples Expert F# book and code samples