我想知道如何使这个方法异步,它给了我一个错误:'await'操作符只能用于异步方法。考虑使用“异步”修饰符标记此方法,并将其返回类型更改为“任务”。如何使这种方法异步?
这里是我的代码:
void OnRegister(object sender, RoutedEventArgs e)
{
await PrintManager.ShowPrintUIAsync();
}
我想知道如何使这个方法异步,它给了我一个错误:'await'操作符只能用于异步方法。考虑使用“异步”修饰符标记此方法,并将其返回类型更改为“任务”。如何使这种方法异步?
这里是我的代码:
void OnRegister(object sender, RoutedEventArgs e)
{
await PrintManager.ShowPrintUIAsync();
}
不客气:
async void OnRegister(object sender, RoutedEventArgs e) { await PrintManager.ShowPrintUIAsync(); }
不能使用没有等待一个异步方法(这将没有任何意义) 。
谢谢,你是对的,当我想起它时,它绝对没有意义......感谢您的帮助! – TomC
async Task<int> OnRegisterAsync(object sender, RoutedEventArgs e)
{
await PrintManager.ShowPrintUIAsync();
return 0;
}
您需要修饰包含'await'和'async'的方法。 在你的情况,我猜你不能让OnRegister返回一个任务,所以你需要一个辅助方法。像这样的东西应该工作:
void OnRegister(object sender, RoutedEventArgs e)
{
RegisterAsync();
}
async void RegisterAsync() {
await PrintManager.ShowPrintUIAsync();
}
请注意registerAsync方法是如何装饰'异步'并返回一个任务。而这又需要由调用者启动。
SCNR:你有没有考虑“*标记这种方法与‘异步’修饰和改变它的返回类型为‘任务’*”? – Heinzi