Using Multiple Threads with Parallel LINQ
Learn about parallel LINQ and multiple threads to execute LINQ queries for improved performance.
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.
Note: Do not assume that using parallel threads will improve the performance of 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 calculate Fibonacci numbers for 45 integers. We will use the StopWatch type to measure the change in performance. We will use operating system tools to monitor the CPU and CPU core usage. This exercise won’t show much if we do not have multiple CPUs or at least multiple cores.
Step 1: Use your preferred code editor to add a new Console App or console project named LinqInParallel
to the Chapter11
solution or workspace.
In Visual Studio Code, select
LinqInParallel
as the activeOmniSharp
project.
Step 2: In Program.cs
, delete the existing statements and then import the System.Diagnostics
namespace so that we can use the StopWatch
type. Add statements to create a stopwatch to record timings, wait for a keypress before starting the timer, create 45 integers, calculate the Fibonacci number for each of them, stop the timer, and display the elapsed milliseconds, as shown in the following code:
Get hands-on with 1400+ tech skills courses.