using System.Collections.Generic;
using System.Threading.Tasks;
private static async Task DoAsyncThing(int i)
Console.WriteLine("Process1"+i.ToString());
int x = new Random(5000).Next(0,1000);
Console.WriteLine("Processed1 done"+i.ToString());
private static async Task DoAsyncThing2(int i)
Console.WriteLine("Process thing2 "+i.ToString());
int x = new Random(2000).Next(0,1000);
Console.WriteLine("Processed thing2 done"+i.ToString()+" for "+x.ToString());
private static async Task SaveAll()
Console.WriteLine("Saving All");
public static async Task ProcessAll()
var tasks = new List<Task>();
for (int i = 0; i < 10; i++)
tasks.Add(DoAsyncThing(i));
tasks.Add(DoAsyncThing2(i));
await Task.WhenAll(tasks);
Console.WriteLine("Next Batch");
Console.WriteLine("Saved");
public static void Main()
Console.WriteLine("sdf");