.Net 4.0 supports parallel LINQ or PLINQ, PLINQ is a parallel implementation of LINQ. PLINQ has the same characteristics has LINQ, in that it executes queries in a differed manner. However, the main difference is that with PLINQ, your data source gets partitioned and each chunk is processed by different worker threads (taking into account the number of processor cores that you have) , making your query execute much faster in certain occasions. Running a query in parallel is just a matter of calling the AsParallel() method of the data source, this will return a ParallelQuery<T> and your query will execute parallel. Let's look a code sample... var query = from num in source.AsParallel() where num % 3 == 0 select ProcessNumber(num); Now, when this query is iterated our a foreach loop or when you call ToList() etc..the query will be run in different worker threads. Although, you have parallelized your query execut