Using multiple threads with parallel LINQ
By default, only one thread is used to execute a LINQ query. Parallel LINQ (PLINQ) is an easy way to enable multiple threads to execute a LINQ query.
Good Practice: Do not assume that using parallel threads will improve the performance of your applications. Always measure real-world timings and resource usage.
Creating an app that benefits from multiple threads
To see it in action, we will start with some code that only uses a single thread to square 2 billion integers. We will use the StopWatch
type to measure the change in performance.
We will use operating system tools to monitor CPU and CPU core usage. If you do not have multiple CPUs or at least multiple cores, then this exercise won't show much!
- Create a new console application project named
LinqInParallel
, add it to the workspace for this chapter, and select the project as active for OmniSharp. - Import the
System.Diagnostics
namespace...