using System.Collections.Generic;
using System.Threading.Tasks;
static Random rnd = new Random();
public static async Task Main()
Console.WriteLine("[GLOBAL] start");
var names = new List<string>{"item1", "item2", "item3"};
await Task.Run(() => Parallel.ForEach(names, item =>
var delay = rnd.Next(500,2000);
Console.WriteLine($"start {item} - {delay}");
Task.Delay(delay).GetAwaiter().GetResult();
Console.WriteLine($"end {item}");
Console.WriteLine("[GLOBAL] end");