title: IMessageService.ShowAsync in INavigationService.ApplicationClosing event
body: <p>How to?</p>
  
  <p>I tried these two methods, but none works. The first hangs, the second quits the program (without any exception).</p>
  
  <pre><code>private void ApplicationClosing1(object sender, ApplicationClosingEventArgs e)
  {
      MessageResult result = MessageResult.None;
      if (!isClosing &amp;&amp; IsDirty)
      {
          result = MessageService.ShowAsync("blah", "blah",
              MessageButton.YesNoCancel, MessageImage.Warning)
              .GetAwaiter().GetResult();
  
          switch (result)
          {
              case MessageResult.Cancel:
                  e.Cancel = true;
                  return;
              case MessageResult.Yes:
                  isClosing = true;
                  SaveAsync();
                  break;
              default:
                  isClosing = true;
                  break;
          }
      }
  }
  </code></pre>
  
  <p>and</p>
  
  <pre><code>private async void ApplicationClosing2(object sender, ApplicationClosingEventArgs e)
  {
      if (!isClosing &amp;&amp; IsDirty)
      {
          var result = await MessageService.ShowAsync("blah","blah",
              MessageButton.YesNoCancel, MessageImage.Warning);
  
          switch (result)
          {
              case MessageResult.Cancel:
                  e.Cancel = true;
                  return;
              case MessageResult.Yes:
                  isClosing = true;
                  await SaveAsync();
                  break;
              default:
                  isClosing = true;
                  break;
          }
      }
  }
  </code></pre>