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
        }