在一个方法中,我有一个像这样的 try catch 块:

try
{
    // do something
}
catch (Exception ex)
{
    MessageDialog message = new MessageDialog(ex.ToString());
    message.ShowAsync();
}

对于 message.ShowAsync() 行,我收到以下警告:



说和做:
try
{
    // do something
}
catch (Exception ex)
{
    MessageDialog message = new MessageDialog(ex.ToString());
    await message.ShowAsync();
}

现在我得到一个异常(exception):



我什至尝试这样做以避免在 catch 块内等待:
Exception exception;
try
{
    // do something
}
catch (Exception ex)
{
    exception = ex;
}

if (exception != null)
{
    MessageDialog message = new MessageDialog(ex.ToString());
    message.ShowAsync();
}

然而,这不会改变任何事情。

在这种情况下,我必须做什么才能使用 awaitMessageDialog.ShowAsync() 就 IntelliSense 显示返回 Windows.Foundation.IAsyncOperation<IUICommand> 的可等待方法而言。

最佳答案

您的函数必须是“async”才能使用 async 运算符:

前任:

 private async void Test()
 {
    MessageDialog message = new MessageDialog(ex.ToString());
    await message.ShowAsync();
 }

关于c# - 将 await 与 MessageDialog.ShowAsync() 一起使用时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38050955/

10-11 19:34