実行が遅れた場合に、PLINQ を使用して並列処理がどのように機能するかを理解しようとしています。簡単な例を次に示します。
string[] words = { "believe", "receipt", "relief", "field" };
bool result = words.AsParallel().Any(w => w.Contains("ei"));
LINQ では、残りの値のクエリを実行せずに、実行が「領収書」値に到達して true を返すことを期待します。
これを並行して行うと、「受領」の結果が返される前に「救済」の評価が開始されている可能性があります。しかし、クエリが「受信」が真の結果をもたらすことを認識したら、他のスレッドはすぐに譲歩しますか?
私の場合、これは重要です。「any」テストは非常にコストがかかる可能性があり、他のタスクを実行するためにプロセッサを解放したいからです。