var syncObject = new object();
var tasks = new List<Task>();
for (int i = 0; i < workers; i++)
tasks.Add(workerAction(i));
Task.WaitAll(tasks.ToArray());
async Task workerAction(int id)
while (sharedCount < 100)
await Task.Delay(r.Next(100, 1000));
Console.WriteLine($"{id}: count: {sharedCount}");