using System.Threading.Tasks;
using System.Collections;
using System.Collections.Generic;
Action action = new Action(() =>
var current = Interlocked.Increment(ref concurrency);
Console.WriteLine(@$"Started an action at {DateTime
.Now:HH:mm:ss.fff} on thread #{Thread
.CurrentThread.ManagedThreadId} with concurrency {current}");
Interlocked.Decrement(ref concurrency);
Action[] actions = Enumerable.Repeat(action, 121).ToArray();
var options = new ParallelOptions() {
MaxDegreeOfParallelism = Environment.ProcessorCount *2
Parallel.Invoke(options, actions);