C# Language
パラレルLINQ(PLINQ)
サーチ…
構文
- ParallelEnumerable.Aggregate(func)
- ParallelEnumerable.Aggregate(seed、func)
- ParallelEnumerable.Aggregate(seed、updateAccumulatorFunc、combineAccumulatorsFunc、resultSelector)
- ParallelEnumerable.Aggregate(seedFactory、updateAccumulatorFunc、combineAccumulatorsFunc、resultSelector)
- ParallelEnumerable.All(述語)
- ParallelEnumerable.Any()
- ParallelEnumerable.Any(述語)
- ParallelEnumerable.AsEnumerable()
- ParallelEnumerable.AsOrdered()
- ParallelEnumerable.AsParallel()
- ParallelEnumerable.AsSequential()
- AsynchronousArray()
- ParallelEnumerable.Average(セレクタ)
- ParallelEnumerable.Cast()
- ParallelEnumerable.Concat(second)
- ParallelEnumerable.Contains(value)
- ParallelEnumerable.Contains(value、comparer)
- ParallelEnumerable.Count()
- ParallelEnumerable.Count(述語)
- ParallelEnumerable.DefaultIfEmpty()
- ParallelEnumerable.DefaultIfEmpty(defaultValue)
- ParallelEnumerable.Distinct()
- ParallelEnumerable.Distinct(comparer)
- ParallelEnumerable.ElementAt(index)
- ParallelEnumerable.ElementAtOrDefault(index)
- ParallelEnumerable.Empty()
- ParallelEnumerable.Except(second)
- ParallelEnumerable.Except(second、comparer)
- ParallelEnumerable.First()
- ParallelEnumerable.First(述語)
- ParallelEnumerable.FirstOrDefault()
- ParallelEnumerable.FirstOrDefault(述語)
- ParallelEnumerable.ForAll(アクション)
- ParallelEnumerable.GroupBy(keySelector)
- ParallelEnumerable.GroupBy(keySelector、comparer)
- ParallelEnumerable.GroupBy(keySelector、elementSelector)
- ParallelEnumerable.GroupBy(keySelector、elementSelector、comparer)
- ParallelEnumerable.GroupBy(keySelector、resultSelector)
- ParallelEnumerable.GroupBy(keySelector、resultSelector、comparer)
- ParallelEnumerable.GroupBy(keySelector、elementSelector、ruleSelector)
- ParallelEnumerable.GroupBy(keySelector、elementSelector、ruleSelector、comparer)
- GroupJoin(inner、outerKeySelector、innerKeySelector、resultSelector)
- GroupJoin(inner、outerKeySelector、innerKeySelector、resultSelector、comparer)
- ParallelEnumerable.Intersect(秒)
- ParallelEnumerable.Intersect(second、comparer)
- ParallelEnumerable.Join(inner、outerKeySelector、innerKeySelector、resultSelector)
- ParallelEnumerable.Join(inner、outerKeySelector、innerKeySelector、resultSelector、comparer)
- ParallelEnumerable.Last()
- ParallelEnumerable.Last(述語)
- ParallelEnumerable.LastOrDefault()
- ParallelEnumerable.LastOrDefault(述語)
- ParallelEnumerable.LongCount()
- ParallelEnumerable.LongCount(述語)
- ParallelEnumerable.Max()
- ParallelEnumerable.Max(セレクタ)
- ParallelEnumerable.Min()
- ParallelEnumerable.Min(セレクタ)
- ParallelEnumerable.OfType()
- ParallelEnumerable.OrderBy(keySelector)
- ParallelEnumerable.OrderBy(keySelector、comparer)
- ParallelEnumerable.OrderByDescending(keySelector)
- ParallelEnumerable.OrderByDescending(keySelector、comparer)
- ParallelEnumerable.Range(開始、カウント)
- ParallelEnumerable.Repeat(要素、カウント)
- ParallelEnumerable.Reverse()
- ParallelEnumerable.Select(セレクタ)
- ParallelEnumerable.SelectMany(selector)
- ParallelEnumerable.SelectMany(collectionSelector、resultSelector)
- ParallelEnumerable.SequenceEqual(second)
- ParallelEnumerable.SequenceEqual(second、comparer)
- ParallelEnumerable.Single()
- ParallelEnumerable.Single(述語)
- ParallelEnumerable.SingleOrDefault()
- ParallelEnumerable.SingleOrDefault(述語)
- ParallelEnumerable.Skip(count)
- ParallelEnumerable.SkipWhile(述語)
- ParallelEnumerable.Sum()
- ParallelEnumerable.Sum(セレクタ)
- ParallelEnumerable.Take(count)
- ParallelEnumerable.TakeWhile(述語)
- ParallelEnumerable.ThenBy(keySelector)
- ParallelEnumerable.ThenBy(keySelector、comparer)
- ParallelEnumerable.ThenByDescending(keySelector)
- ParallelEnumerable.ThenByDescending(keySelector、comparer)
- ParallelEnumerable.ToArray()
- ParallelEnumerable.ToDictionary(keySelector)
- ParallelEnumerable.ToDictionary(keySelector、comparer)
- ParallelEnumerable.ToDictionary(elementSelector)
- ParallelEnumerable.ToDictionary(elementSelector、comparer)
- ParallelEnumerable.ToList()
- ParallelEnumerable.ToLookup(keySelector)
- ParallelEnumerable.ToLookup(keySelector、comparer)
- ParallelEnumerable.ToLookup(keySelector、elementSelector)
- ParallelEnumerable.ToLookup(keySelector、elementSelector、comparer)
- ParallelEnumerable.Union(second)
- ParallelEnumerable.Union(second、comparer)
- ParallelEnumerable.Where(述語)
- ParallelEnumerable.WithCancellation(cancellationToken)
- ParallelEnumerable.WithDegreeOfParallelism(degreeOfParallelism)
- ParallelEnumerable.WithExecutionMode(executionMode)
- ParallelEnumerable.WithMergeOptions(mergeOptions)
- ParallelEnumerable.Zip(second、resultSelector)
簡単な例
この例は、PLINQを使用して、複数のスレッドを使用して1から10,000の間の偶数を計算する方法を示しています。結果リストは注文されないことに注意してください!
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
並列度は、照会を処理するために同時に実行されるタスクの最大数です。
var sequence = Enumerable.Range(1, 10000);
var evenNumbers = sequence.AsParallel()
.WithDegreeOfParallelism(4)
.Where(x => x % 2 == 0);
AsOrdered
この例は、PLINQを使用して、複数のスレッドを使用して1から10,000の間の偶数を計算する方法を示しています。 AsOrdered
は多数の要素のパフォーマンスをAsOrdered
せる可能性があることに注意して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
多くの要素を扱う場合、順序が揃っているとパフォーマンスが低下する可能性があります。これを軽減するために、シーケンス順序が不要になったときにAsUnordered
を呼び出すことができます。
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
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow