2013-04-20 57 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