Parallelism with forEach loop will be able to handle multiple
records to process in the loop parallel. Compared to foreach loop
parallel.foreach loop will process faster. But it is not recommending to use if
there is dependency.
Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ParllForEch
{
class Program
{
static void Main(string[] args)
{
List<string> Alphabets = new List<string>();
Alphabets.Add("A");
Alphabets.Add("Aa");
Alphabets.Add("Aaa");
Alphabets.Add("B");
Alphabets.Add("Bb");
Alphabets.Add("Bbb");
Alphabets.Add("C");
Alphabets.Add("Cc");
Alphabets.Add("Ccc");
Alphabets.Add("D");
Alphabets.Add("Dd");
Alphabets.Add("Ddd");
Alphabets.Add("E");
Alphabets.Add("Ee");
Alphabets.Add("Eee");
Alphabets.Add("F");
Alphabets.Add("Ff");
Alphabets.Add("Fff");
Alphabets.Add("G");
Alphabets.Add("Gg");
Alphabets.Add("Ggg");
Alphabets.Add("H");
Alphabets.Add("Hh");
Alphabets.Add("Hhh");
Alphabets.Add("I");
Alphabets.Add("Ii");
Alphabets.Add("Iii");
Parallel.ForEach(Alphabets, new ParallelOptions { MaxDegreeOfParallelism = 5 }, fruit =>
{
Console.WriteLine("Fruit Name: {0}, Thread Id= {1}", fruit, Thread.CurrentThread.ManagedThreadId);
}
);
Console.ReadLine();
}
}
}