我想知道如何使這個方法異步,它給了我一個錯誤:'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