我怎样才能使这个方法异步?

时间:2014-04-04 08:12:37

标签: c# asynchronous windows-runtime

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

这是我的代码:

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

3 个答案:

答案 0 :(得分:1)

欢迎您:

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

你不能在没有异步方法的情况下使用await(这没有任何意义)。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您需要修饰包含等待&#39;等待的方法。使用&#39; async&#39;。 在你的情况下,我猜你不能让OnRegister返回一个任务,所以你需要一个帮助方法。这样的事情应该有效:

void OnRegister(object sender, RoutedEventArgs e)
{
    RegisterAsync();
}

async void RegisterAsync() {
    await PrintManager.ShowPrintUIAsync();  
}

注意RegisterAsync方法是如何使用&#39; async&#39;并返回一个任务。而这又需要由来电者启动。

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