Sommaire

Parallel Language Integrated Query (PLINQ)

1. Introduction

L’idée de PLINQ est schématiquement de pouvoir utiliser du parallélisme dans des requêtes LINQ.

L’essentiel de ce qui est relatif à PLINQ est stocké dans la classe statique System.Linq.ParallelEnumerable dans laquelle on retrouve les principaux opérateurs étudiés précédemment, mais dans une version supportant le parallélisme. On retrouve ainsi OrderBy, Select, Where, etc.

2. Premier exemple

On veut par exemple calculer de façon parallèle le logarithme népérien des 1000 premiers entiers et déterminer si la valeur est supérieure à 5. On affichera finalement uniquement les entiers dont le logarithme népérien est strictement supérieur à 5.

using System;  
using System.Linq;  
  
namespace ConsoleAppPLINQ  
{  
    class Programme  
    {  
        static void Main(string[] args)  
        {  
            var listeEntiers = Enumerable.Range(1, 1000);  
            var résultat = listeEntiers.AsParallel()  
                                        .Where(k => Math.Log(k) > 5)  
                             ...