using System.Threading.Tasks;
public static async Task Main()
Console.WriteLine("Main thread 1:" + Thread.CurrentThread.ManagedThreadId.ToString());
await DisplayCurrentInfoAsync();
Console.WriteLine("Main thread 2:" + Thread.CurrentThread.ManagedThreadId.ToString());
Console.WriteLine("main task complete!");
public static async Task DisplayCurrentInfoAsync()
Console.WriteLine("Second thread 1:" + Thread.CurrentThread.ManagedThreadId.ToString());
await WaitAndApologizeAsync();
Console.WriteLine("Second thread 2:" + Thread.CurrentThread.ManagedThreadId.ToString());
Console.WriteLine($"Today is {DateTime.Now:D}");
static async Task WaitAndApologizeAsync()
Console.WriteLine("Third thread 1:" + Thread.CurrentThread.ManagedThreadId.ToString());
Console.WriteLine("Third thread 2:" + Thread.CurrentThread.ManagedThreadId.ToString());
Console.WriteLine("Sorry for the delay...\n");