我正在构建一个 .NETStandard 库(版本1.3), 在库中使用async await工作正常,直到我添加对 Windows.Foundation.UniversalApiContract 的引用。 添加此引用后,我的代码中的每个await关键字都会出错
这是错误
' IAsyncAction'不包含' GetAwaiter'的定义和不 扩展方法' GetAwaiter'接受第一个类型的参数 ' IAsyncAction'可以找到
这是我需要运行的代码
await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { OnUserChanged?.Invoke(user); });
删除等待关键字导致工作代码,但我收到此警告
因为没有等待此调用,所以执行当前方法 在通话结束前继续。考虑应用“等待”#39; 运算符到调用的结果。
我该如何解决这个问题?
答案 0 :(得分:0)
确保代码文件顶部有using System;
。这具有将IAsyncAction
转换为Task
所需的扩展名。
如果这不起作用,请尝试此语句(只是为了查看代码是否编译并运行):
var a = CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { OnUserChanged?.Invoke(user); });
await System.WindowsRuntimeSystemExtensions.AsTask(a);
如果上述内容对您不起作用,请尝试暂时升级到.Net Standard 1.4(再次,只是为了查看它是否编译并运行)
如果这不起作用,那么可能会有一些与图书馆参考混淆的东西。