private void ShowAsyncIfPossibleButton_OnClick(object sender, RoutedEventArgs e) { var dialog = new MessageDialog("Dialog 1 ShowAsyncIfPossible", "Dialog 1"); dialog.ShowAsyncIfPossible(); dialog = new MessageDialog("Dialog 2 ShowAsyncIfPossible", "Dialog 2"); dialog.ShowAsyncIfPossible(); dialog = new MessageDialog("Dialog 3 ShowAsyncIfPossible", "Dialog 3"); dialog.ShowAsyncIfPossible(); }
private void ShowAsyncIfPossibleButton_OnClick(object sender, RoutedEventArgs e) { var dialog = new MessageDialog("Dialog 1 ShowAsyncIfPossible", "Dialog 1"); #pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed dialog.ShowAsyncIfPossible(); dialog = new MessageDialog("Dialog 2 ShowAsyncIfPossible", "Dialog 2"); dialog.ShowAsyncIfPossible(); dialog = new MessageDialog("Dialog 3 ShowAsyncIfPossible", "Dialog 3"); dialog.ShowAsyncIfPossible(); #pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed }
private async void ShowAsyncQueuePlusIfPossibleButton_OnClick(object sender, RoutedEventArgs e) { // This should obviously be displayed var dialog = new MessageDialog("await ShowAsync", "Dialog 1"); await dialog.ShowAsync(); // This should be displayed because we awaited the previous request to return dialog = new MessageDialog("await ShowAsync", "Dialog 2"); await dialog.ShowAsync(); // All other requests below are invoked without awaiting // the preceding ones to complete (dialogs being closed) // This will show because there is no dialog shown at this time dialog = new MessageDialog("ShowAsyncIfPossible", "Dialog 3"); #pragma warning disable 4014 dialog.ShowAsyncIfPossible(); // This will not show because there is a dialog shown at this time dialog = new MessageDialog("ShowAsyncIfPossible", "Dialog 4"); dialog.ShowAsyncIfPossible(); // This will show after Dialog 3 is dismissed dialog = new MessageDialog("ShowAsyncQueue", "Dialog 5"); dialog.ShowAsyncQueue(); // This will not show because there is a dialog shown at this time (Dialog 3) dialog = new MessageDialog("ShowAsyncIfPossible", "Dialog 6"); dialog.ShowAsyncIfPossible(); // This will show after Dialog 5 is dismissed dialog = new MessageDialog("ShowAsyncQueue", "Dialog 7"); dialog.ShowAsyncQueue(); // This will show after Dialog 7 is dismissed dialog = new MessageDialog("ShowAsyncQueue", "Dialog 8"); dialog.ShowAsyncQueue(); #pragma warning restore 4014 }