using System.Threading.Tasks;
public static void Main()
private static void ParallelLoopStateBreak()
int breakIndex = rnd.Next(1, 10);
Parallel.For(1, 100, (i, state) => {
Console.WriteLine("Beginning iteration {0}", i);
delay = rnd.Next(1, 1000);
Console.WriteLine("Break in iteration {0}", i);
if(state.ShouldExitCurrentIteration)
if(i > state.LowestBreakIteration)
Console.WriteLine("Completed iteration {0}", i);
private static void ParallelLoopStateStop()
int stopIndex = rnd.Next(1, 10);
Parallel.For(1, 100, (i, state) => {
Console.WriteLine("Beginning iteration {0}", i);
delay = rnd.Next(1, 1000);
Console.WriteLine("Stop in iteration {0}", i);
Console.WriteLine("Completed iteration {0}", i);