このコードに問題があります:
try { await DoSomethingAsync(); }
catch (System.UnauthorizedAccessException)
{
ResourceLoader resourceLoader = new ResourceLoader();
var accessDenied = new MessageDialog(resourceLoader.GetString("access_denied_text"), resourceLoader.GetString("access_denied_title"));
accessDenied.ShowAsync();
}
await accessDenied.ShowAsync(); を書き込むことはできません。Visual Studio ではエラーとしてカウントされるため、Catch ボディでの待機は禁止されています。しかし、await のないコードも機能しません。例外をキャッチできず、アプリがクラッシュします。
とにかく、この時点で実行を一時停止する必要があるため、このダイアログを同期的に表示する必要があります。それで、これを行う方法は?