如何使此方法异步

本文关键字:异步 此方法 何使 | 更新日期: 2023-09-27 17:56:29

我想知道如何使此方法异步,它给了我一个错误:"await"运算符只能在异步方法中使用。请考虑使用"异步"修饰符标记此方法,并将其返回类型更改为"Task"。

这是我的代码:

void OnRegister(object sender, RoutedEventArgs e)
{
    await PrintManager.ShowPrintUIAsync();
}

如何使此方法异步

不客气:

async void OnRegister(object sender, RoutedEventArgs e) { await PrintManager.ShowPrintUIAsync(); }

如果没有异步方法,则无法使用 await(这没有任何意义)。

async Task<int> OnRegisterAsync(object sender, RoutedEventArgs e)
{
await PrintManager.ShowPrintUIAsync();
return 0;
}
您需要

用"async"装饰包含"await"的方法。在您的情况下,我猜您无法让 OnRegister 返回任务,因此您需要一个帮助程序方法。这样的事情应该有效:

void OnRegister(object sender, RoutedEventArgs e)
{
    RegisterAsync();
}
async void RegisterAsync() {
    await PrintManager.ShowPrintUIAsync();  
}

请注意 RegisterAsync 方法如何用"async"装饰并返回一个 Task。这反过来需要由调用方启动。

参考: http://msdn.microsoft.com/en-us/library/hh191443.aspx