public static async Task MultipleEventHandlersAsync() { Task <bool> secondHandlerFinished = s_tcs.Task; var button = new NaiveButton(); button.Clicked += OnButtonClicked1; button.Clicked += OnButtonClicked2Async; button.Clicked += OnButtonClicked3; Console.WriteLine("Before button.Click() is called..."); button.Click(); Console.WriteLine("After button.Click() is called..."); await secondHandlerFinished; }
public static async Task Main() { tcs = new TaskCompletionSource <bool>(); var secondHandlerFinished = tcs.Task; var button = new NaiveButton(); button.Clicked += Button_Clicked_1; button.Clicked += Button_Clicked_2_Async; button.Clicked += Button_Clicked_3; Console.WriteLine("About to click a button..."); button.Click(); Console.WriteLine("Button's Click method returned."); await secondHandlerFinished; }