Szukaj…


Składnia

  • ParallelEnumerable.Aggregate (func)
  • ParallelEnumerable.Aggregate (seed, func)
  • ParallelEnumerable.Aggregate (seed, updateAccumulatorFunc, CombineAccumulatorsFunc, resultSelector)
  • ParallelEnumerable.Aggregate (seedFactory, updateAccumulatorFunc, CombineAccumulatorsFunc, resultSelector)
  • ParallelEnumerable.All (predicate)
  • ParallelEnumerable.Any ()
  • ParallelEnumerable.Any (predicate)
  • ParallelEnumerable.AsEnumerable ()
  • ParallelEnumerable.AsOrders ()
  • ParallelEnumerable.AsParallel ()
  • ParallelEnumerable.AsSequential ()
  • ParallelEnumerable.AsUnordered ()
  • ParallelEnumerable.A Average (selektor)
  • ParallelEnumerable.Cast ()
  • ParallelEnumerable.Concat (drugi)
  • ParallelEnumerable.Contains (wartość)
  • ParallelEnumerable.Contains (wartość, moduł porównujący)
  • ParallelEnumerable.Count ()
  • ParallelEnumerable.Count (predicate)
  • ParallelEnumerable.DefaultIfEmpty ()
  • ParallelEnumerable.DefaultIfEmpty (defaultValue)
  • ParallelEnumerable.Distinct ()
  • ParallelEnumerable.Distinct (porównaj)
  • ParallelEnumerable.ElementAt (indeks)
  • ParallelEnumerable.ElementAtOrDefault (indeks)
  • ParallelEnumerable.Empty ()
  • ParallelEnumerable.Except (second)
  • ParallelEnumerable.Except (drugi, moduł porównujący)
  • ParallelEnumerable.First ()
  • ParallelEnumerable.First (predicate)
  • ParallelEnumerable.FirstOrDefault ()
  • ParallelEnumerable.FirstOrDefault (predykat)
  • ParallelEnumerable.ForAll (akcja)
  • ParallelEnumerable.GroupBy (keySelector)
  • ParallelEnumerable.GroupBy (keySelector, porównywarka)
  • ParallelEnumerable.GroupBy (keySelector, elementSelector)
  • ParallelEnumerable.GroupBy (keySelector, elementSelector, porównywarka)
  • ParallelEnumerable.GroupBy (keySelector, resultSelector)
  • ParallelEnumerable.GroupBy (keySelector, resultSelector, porównywarka)
  • ParallelEnumerable.GroupBy (keySelector, elementSelector, rulesSelector)
  • ParallelEnumerable.GroupBy (keySelector, elementSelector, rulesSelector, porównywarka)
  • ParallelEnumerable.GroupJoin (inner, outerKeySelector, innerKeySelector, resultSelector)
  • ParallelEnumerable.GroupJoin (inner, outerKeySelector, innerKeySelector, resultSelector, porównywarka)
  • ParallelEnumerable.Intersect (drugi)
  • ParallelEnumerable.Intersect (drugi, moduł porównujący)
  • ParallelEnumerable.Join (inner, outerKeySelector, innerKeySelector, resultSelector)
  • ParallelEnumerable.Join (inner, outerKeySelector, innerKeySelector, resultSelector, porównywarka)
  • ParallelEnumerable.Last ()
  • ParallelEnumerable.Last (predicate)
  • ParallelEnumerable.LastOrDefault ()
  • ParallelEnumerable.LastOrDefault (predykat)
  • ParallelEnumerable.LongCount ()
  • ParallelEnumerable.LongCount (predicate)
  • ParallelEnumerable.Max ()
  • ParallelEnumerable.Max (selektor)
  • ParallelEnumerable.Min ()
  • ParallelEnumerable.Min (selektor)
  • ParallelEnumerable.OfType ()
  • ParallelEnumerable.OrderBy (keySelector)
  • ParallelEnumerable.OrderBy (keySelector, porównywarka)
  • ParallelEnumerable.OrderByDescending (keySelector)
  • ParallelEnumerable.OrderByDescending (keySelector, porównywarka)
  • ParallelEnumerable.Range (start, count)
  • ParallelEnumerable.Repeat (element, liczba)
  • ParallelEnumerable.Reverse ()
  • ParallelEnumerable.Select (selektor)
  • ParallelEnumerable.SelectMany (selektor)
  • ParallelEnumerable.SelectMany (collectionSelector, resultSelector)
  • ParallelEnumerable.SequenceEqual (drugi)
  • ParallelEnumerable.SequenceEqual (drugi, moduł porównujący)
  • ParallelEnumerable.Single ()
  • ParallelEnumerable.Single (predykat)
  • ParallelEnumerable.SingleOrDefault ()
  • ParallelEnumerable.SingleOrDefault (predykat)
  • ParallelEnumerable.Skip (liczba)
  • ParallelEnumerable.SkipWhile (predicate)
  • ParallelEnumerable.Sum ()
  • ParallelEnumerable.Sum (selektor)
  • ParallelEnumerable.Take (count)
  • ParallelEnumerable.TakeWhile (predicate)
  • ParallelEnumerable.ThenBy (keySelector)
  • ParallelEnumerable.ThenBy (keySelector, porównywarka)
  • ParallelEnumerable.ThenByDescending (keySelector)
  • ParallelEnumerable.ThenByDescending (keySelector, porównywarka)
  • ParallelEnumerable.ToArray ()
  • ParallelEnumerable.ToDictionary (keySelector)
  • ParallelEnumerable.ToDictionary (keySelector, porównywarka)
  • ParallelEnumerable.ToDictionary (elementSelector)
  • ParallelEnumerable.ToDictionary (elementSelector, porównywarka)
  • ParallelEnumerable.ToList ()
  • ParallelEnumerable.ToLookup (keySelector)
  • ParallelEnumerable.ToLookup (keySelector, porównywarka)
  • ParallelEnumerable.ToLookup (keySelector, elementSelector)
  • ParallelEnumerable.ToLookup (keySelector, elementSelector, porównywarka)
  • ParallelEnumerable.Union (drugi)
  • ParallelEnumerable.Union (drugi, moduł porównujący)
  • ParallelEnumerable.Where (predicate)
  • ParallelEnumerable.WithCancellation (cancellationToken)
  • ParallelEnumerable.WithDegreeOfParallelism (degreeOfParallelism)
  • ParallelEnumerable.WithExecutionMode (executeMode)
  • ParallelEnumerable.WithMergeOptions (mergeOptions)
  • ParallelEnumerable.Zip (second, resultSelector)

Prosty przykład

Ten przykład pokazuje, jak PLINQ można wykorzystać do obliczenia liczb parzystych od 1 do 10 000 przy użyciu wielu wątków. Pamiętaj, że wynikowa lista nie zostanie zamówiona!

var sequence = Enumerable.Range(1, 10000);
var evenNumbers = sequence.AsParallel()
                          .Where(x => x % 2 == 0)
                          .ToList();

// evenNumbers = { 4, 26, 28, 30, ... }
// Order will vary with different runs

WithDegreeOfParallelism

Stopień równoległości to maksymalna liczba jednocześnie wykonujących się zadań, które zostaną wykorzystane do przetworzenia zapytania.

var sequence = Enumerable.Range(1, 10000);
var evenNumbers = sequence.AsParallel()
                          .WithDegreeOfParallelism(4)
                          .Where(x => x % 2 == 0);

Na zamówienie

Ten przykład pokazuje, jak PLINQ można wykorzystać do obliczenia liczb parzystych od 1 do 10 000 przy użyciu wielu wątków. Kolejność zostanie zachowana na wynikowej liście, należy jednak pamiętać, że AsOrdered może AsOrdered wydajność dużej liczby elementów, dlatego w miarę możliwości preferowane jest przetwarzanie AsOrdered .

var sequence = Enumerable.Range(1, 10000);
var evenNumbers = sequence.AsParallel()
                          .AsOrdered()
                          .Where(x => x % 2 == 0)
                          .ToList();

// evenNumbers = { 2, 4, 6, 8, ..., 10000 }

AsUnordered

Uporządkowane sekwencje mogą zaszkodzić wydajności, gdy mamy do czynienia z dużą liczbą elementów. Aby to złagodzić, można wywołać AsUnordered gdy kolejność sekwencji nie jest już potrzebna.

var sequence = Enumerable.Range(1, 10000).Select(x => -1 * x); // -1, -2, ...
var evenNumbers = sequence.AsParallel()
                          .OrderBy(x => x)
                          .Take(5000)
                          .AsUnordered()
                          .Where(x => x % 2 == 0) // This line won't be affected by ordering
                          .ToList();


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow