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

标签 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 中提到了类似的东西,但无法让它发挥作用。

谢谢!

最佳答案

一般来说,异步任务应该返回一个Task。或 Task<T> .不过,在这种情况下,它返回 void 是完全可以接受的。 .您的方法签名应该是

private async void OnPageLoaded(object sender, RoutedEventArgs e)

关于c# - 如何将异步事件处理程序连接到 WinRT 中的非异步事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18459579/

相关文章:

javascript - 如何使用异步操作 WinJS 在 for 循环后执行操作

c# - 在 C# 中为 Win 8 Metro App 举办 Button 事件

image - 如何控制何时将图像数据加载到 Windows 应用商店应用程序中的内存中?

windows-8 - 找不到源文件 'obj\ARM\Release\TemporaryGeneratedFile_<GUID>cs'

c# - 自动重新连接异步套接字客户端

c# - Visual Studio 单元测试 : run initialization code before each test

c# - DI : Injecting ActionFilterAttribute implementation (ASP. NET MVC)

c# - 如何从 C++ 为 Xamarin.Android 创建 C# DLL

c# - FileContentResult 和 FileStreamResult 的区别

java - Controller 中的 Spring Boot @Async 方法正在同步执行