swinefeaster
swinefeaster

Reputation: 2555

How can I hook up an async event handler to a non async event in WinRT?

I have a page derived from Windows.UI.Xaml.Controls.Page and I want to do something like so:

Loaded += OnPageLoaded;

where:

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

Is it even possible to hook this up?

I get:

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

Msdn alludes to something like this at Events and routed events overview, but haven't been able to get it to work.

Thanks!

Upvotes: 1

Views: 1689

Answers (1)

ZombieSheep
ZombieSheep

Reputation: 29953

In general, an asynchronous task should return a Task or Task<T>. In this case, though, it is perfectly acceptable for it to return void. Your method signature should be

private async void OnPageLoaded(object sender, RoutedEventArgs e)

Upvotes: 6

Related Questions