class DemoParallelForWithLoopResult { static int[] data;
// , .
// v // , .
static void DisplayData(int v, ParallelLoopState pis) {
// , if (v < 0) pls.Break();
Console.WriteLine(": " + v);
static void Main() {
Console.WriteLine(" ."); data = new int[100000000];
// .
for (int i=0; i < data.Length; i++) data[i] = i;
// data, data[100000] = -10;
// , ForEachO,
// .
ParallelLoopResult loopResult = Parallel.ForEach(data, DisplayData);
// , , if(!loopResult.IsCompleted)
Console.WriteLine(" - , " +
" \" +
" " +
loopResult.LowestBreaklteration + ".\n");
Console.WriteLine(" .");
}
}
, "" . . - "" , ForEach ().
// , ForEachO,
// .
ParallelLoopResult loopResult =
Parallel.ForEach(data, (v, pis) => {
Console.WriteLine(": " + v); if (v < 0) pis.Break ();
});
PLINQ
PLINQ LINQ TPL. PLINQ , , . , . TPL, PLINQ , .
ParallelEnumerable
PLINQ ParallelEnumerable, System. Linq. , , . , LINQ Enumerable. ParallelQuery, ParallelQuery. ParallelQuery , . , . ParallelQuery , ParallelEnumerable. , As Parallel (), .
|
|
AsParallel ()
PLINQ . AsParallel () . AsParallel () ParallelEnumerable , ParallelQuery. . , . ( , , , .) , AsParallel () , LINQ LINQ. .
, AsParallel (). :
public static ParallelQuery AsParallel(this IEnumerable source) public static ParallelQuery<TSource>
AsParallel<TSource>(this IEnumerable<TSource> source)