using System.Threading.Tasks;
using System.Collections.Generic;
private static String lastCommandInput = "";
public static void Main()
Console.WriteLine("Main finished. ThreadID: " + Thread.CurrentThread.ManagedThreadId);
Console.WriteLine("Starting up... ThreadID: " + Thread.CurrentThread.ManagedThreadId);
var tasks = new List<Task>();
tasks.Add(Task.Run(() => DoThingAsync(3)));
tasks.Add(Task.Run(() => DoThingAsync(2)));
tasks.Add(Task.Run(() => DoThingAsync(1)));
Console.WriteLine("Started up! ThreadID: " + Thread.CurrentThread.ManagedThreadId);
foreach (Task t in tasks)
private async void DoThingAsync(int seconds)
Console.WriteLine("Waiting " + seconds + " seconds... ThreadID: " + Thread.CurrentThread.ManagedThreadId);
await Task.Delay(seconds * 1000);
Console.WriteLine(seconds + " seconds over! ThreadID: " + Thread.CurrentThread.ManagedThreadId);