In this chapter, we discussed the basics of LINQ before moving on to understand how we can write parallel queries using PLINQ. We learned that PLINQ can work well to improve the performance of the application as a whole, but it is important to bear its disadvantages in mind. As a programmer, it is always a good idea to weigh up your options by writing both LINQ and PLINQ queries and comparing their performance.
In the next chapter, we will learn about using synchronization primitives to preserve the consistency and state of data when data is shared across multiple threads.