Har*_*Len 8 c# async-await portable-class-library windows-phone-8 windows-store-apps
我正在尝试在Visual Studio 2012中创建一个可移植类库,用于Windows 8商店应用程序和Windows Phone 8应用程序.
我收到以下错误:
'await'要求'Windows.Foundation.IAsyncOperation'类型具有合适的GetAwaiter方法.你错过了'系统'的使用指令吗?
在这行代码中:
StorageFolder guidesInstallFolder = await Package.Current.InstalledLocation.GetFolderAsync(guidesFolder);
Run Code Online (Sandbox Code Playgroud)
我的可移植类库针对适用于Windows应用商店的.NET Framework 4.5,Windows Phone 8和.NET.
我没有在纯Windows Phone 8项目中获得此代码行的错误,我也没有在Windows应用商店应用中获取它,所以我不明白为什么它在我的PCL中不起作用.
GetAwaiter是WindowsRuntimeSystemExtensions类中的扩展方法,该方法位于System.Runtime.WindowsRuntime.dll中.使用对象浏览器我可以看到这个DLL可以在.NET for Windows Store应用程序组件集和Windows Phone 8组件集中使用,但不能在.NET Portable子集中使用.我只是不明白为什么它不在Portable Subset中,如果它在我的两个目标平台都可用.
您需要此处 NuGet 上的异步目标包,以便 async/await 适用于该目标组合。
更新:
尝试这个(废话)代码片段来检查它是否正确使用了 async/await。
public async void MyMethodAsync()
{
var req = WebRequest.Create("");
await req.GetRequestStreamAsync();
}
Run Code Online (Sandbox Code Playgroud)
然而,即使您解决了async/await不可用的第一个问题, Package您调用的 API 在 PCL 中也不可用。
| 归档时间: |
|
| 查看次数: |
4128 次 |
| 最近记录: |