using System.Threading.Tasks;
public static void Main(string[] args)
Task.Run(() => AsyncMain2()).Wait();
private static void Foo(Action f)
public static async Task AsyncMain()
Console.WriteLine("Started");
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Foo(async () => { Console.WriteLine(Thread.CurrentThread.ManagedThreadId); throw new Exception(); });
Console.WriteLine("Finished");
public static async Task AsyncMain2()
Console.WriteLine("Started");
Console.WriteLine("Finished");
public static async void ThrowException()
throw new InvalidOperationException();