如何将异步事件处理程序连接到WinRT中的非异步事件?

时间:2013-08-27 07:33:06

标签: c# asynchronous windows-8 windows-runtime

我有一个源自Windows.UI.Xaml.Controls.Page的页面,我想做类似的事情:

Loaded += OnPageLoaded;

其中:

private async Task OnPageLoaded(object sender, RoutedEventArgs e)
{
   await SomeAsync();
}

甚至可以把它连接起来吗?

我明白了:

error CS0407: 'System.Threading.Tasks.Task 
    MyApp.MyPage.OnPageLoaded(object, Windows.UI.Xaml.RoutedEventArgs)' 
    has the wrong return type

Msdn在Events and routed events overview暗示了这样的事情,但未能让它发挥作用。

谢谢!

1 个答案:

答案 0 :(得分:6)

通常,异步任务应返回TaskTask<T>。但在这种情况下,返回void是完全可以接受的。您的方法签名应为

private async void OnPageLoaded(object sender, RoutedEventArgs e)