using System.Collections.Concurrent;
using System.Threading.Tasks;
public static void Main()
var exceptions = new ConcurrentBag<Exception>();
var results = new ConcurrentBag<int>();
var numbers = new[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
new ParallelOptions(){MaxDegreeOfParallelism = 3},
n => Task.Factory.StartNew(
Console.WriteLine("Total Exceptions: {0}", exceptions.Count);
private static void ProcessNumber(int number)
Console.WriteLine("ThreadId={0}, number={1}", Thread.CurrentThread.ManagedThreadId, number);
throw new NotImplementedException();