using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main()
ParallelForWithThreadLocalVariables();
private static void SimpleParallelFor()
ParallelLoopResult result = Parallel.For(0, 100, index => CalculateSum(index));
Console.WriteLine(result.IsCompleted);
private static void CalculateSum(int index)
Random rnd = new Random(index * 100000);
Byte[] bytes = new Byte[100];
foreach(var byt in bytes)
Console.WriteLine($"Index: {index}, Sum: {sum}");
private static void ParallelForWithThreadLocalVariables()
int[] nums = Enumerable.Range(0, 1000000).ToArray();
(index, loopState, subtotal) =>
(subTotal) => Interlocked.Add(ref total, subTotal)
Console.WriteLine("The total is {0:N0}", total);