2013-04-20 26 views
3

我使用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

+0

如果它只有'Sleep()',只需将其删除。 – 2013-04-20 12:06:59

+4

我自己并没有尝试过,但是微软发布了[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

回答

5

您可以使用,如以提供异步/ AWAIT功能由大卫的BCL.Async在.NET4项目说明。最简单的方法是安装(现在稳定的)Microsoft.Bcl.Async Nuget包(更多信息在这里http://nuget.org/packages/Microsoft.Bcl.Async/,这里http://blogs.msdn.com/b/bclteam/

+1

我安装了Bcl.Async,但没有Task.Run方法。你知道我怎么能做到这一点? – Finchsize 2013-04-20 19:51:08

+2

好吧,我找到了一个解决方案:Task.Factory.StartNew – Finchsize 2013-04-20 20:06:13

+0

请记住,这样,XP用户将不得不安装.net 4.0和KB2468871这是另一个约20mb下载。 另外请记住,xp上的.net 4.0 bug不会被修复,你将无法检查它们并修复你的任何xp用户将会拥有的bug。 – Programista 2013-10-06 11:34:57