我已经为 .NET Framework 4、Silverlight 4 和 5 以及 Windows Phone 7.5 和 8 安装了 NuGet Package Async。
Version 1.0.16
我使用的是 Microsoft .NET 4.0,但由于虚拟主机包限制,我无法升级。 (可悲!)
我的测试代码:(我正在执行 Linq to SQL 查询代替 Thread.Sleep)
public class Search
{
public async Task<List<Result>> GetResults(string SearchString)
{
await System.Threading.Tasks.Task.Factory.StartNew(() => Thread.Sleep(1000));
}
}
我的错误:
Cannot await 'System.Threading.Tasks.Task'
http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx讨论了错误,但这并不是真正的答案,因为我没有使用 VB,而且我已经在执行解决方案描述的操作。
[编辑] 我收到警告:
Warning 4 The primary reference "Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
感谢您的帮助。
最佳答案
真是一场噩梦!我发现了问题。
Microsoft.Bcl
在我的案例中,Microsoft.Bcl 和 Microsoft.Bcl.Async 似乎存在冲突。我使用以下命令删除了 Microsoft.Bcl 和 Microsoft.Bcl.Async:
uninstall-package Microsoft.Bcl.Async -force
然后:
uninstall-package Microsoft.Bcl -force
然后重新安装:
install-package Microsoft.Bcl.Async
现在它很有魅力。我不敢相信这个?也不确定为什么首先将 Microsoft.Bcl 留在那里。删除 Microsoft.Bcl.Async 后,它会被遗忘。到目前为止一切正常。还有一些测试要做。
如果其他人对 NuGet 包有疑问,您可以自己尝试:
update-package -pre
这将尝试回滚已更新的包。这就是我发现问题的方式。
[编辑] 值得注意的是,经过进一步测试,Microsoft.Bcl在卸载Microsoft.Bcl.Async时并没有被删除。 Microsoft.Bcl 可以单独更新,看起来这个更新在 Microsoft.Bcl.Async 之外可能是一个问题。 Microsoft.Bcl 在安装 Microsoft.Bcl.Async 时安装。
希望这对其他人有帮助!
关于c# - 等待和异步属性中的方法错误 'Cannot await ' System.Threading.Tasks.Task',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19439564/