我使用C#和.NET 4.5,直到我需要为Windows XP,这是不通过.NET 4.5C#异步笏4.0
支持的应用程序我的问题是如何使这个功能:
private async Task<int> wait(int czas)
{
return await Task.Run(() =>
{
Thread.Sleep(czas * 1000);
return 0;
});
}
在.NET 4.0
我使用C#和.NET 4.5,直到我需要为Windows XP,这是不通过.NET 4.5C#异步笏4.0
支持的应用程序我的问题是如何使这个功能:
private async Task<int> wait(int czas)
{
return await Task.Run(() =>
{
Thread.Sleep(czas * 1000);
return 0;
});
}
在.NET 4.0
您不能使用异步和等待在.NET 2.0,3.0和3.5,如果针对.NET 3.5是必须的,你可以尝试AsyncBridge为.NET 3.5。
另一个感兴趣的信息可能是:Using async/await without .NET Framework 4.5
您可以使用,如以提供异步/ AWAIT功能由大卫的BCL.Async在.NET4项目说明。最简单的方法是安装(现在稳定的)Microsoft.Bcl.Async Nuget包(更多信息在这里http://nuget.org/packages/Microsoft.Bcl.Async/,这里http://blogs.msdn.com/b/bclteam/)
我安装了Bcl.Async,但没有Task.Run方法。你知道我怎么能做到这一点? – Finchsize 2013-04-20 19:51:08
好吧,我找到了一个解决方案:Task.Factory.StartNew – Finchsize 2013-04-20 20:06:13
请记住,这样,XP用户将不得不安装.net 4.0和KB2468871这是另一个约20mb下载。 另外请记住,xp上的.net 4.0 bug不会被修复,你将无法检查它们并修复你的任何xp用户将会拥有的bug。 – Programista 2013-10-06 11:34:57
如果它只有'Sleep()',只需将其删除。 – 2013-04-20 12:06:59
我自己并没有尝试过,但是微软发布了[Microsoft.Bcl.Async](http://blogs.msdn.com/b/bclteam/archive/2013/04/17/microsoft-bcl-async-is- now-stable.aspx)用于.NET 4.0以获取与C#5编译器的异步/等待。 – vcsjones 2013-04-20 12:10:54