2014-01-14 101 views
11

我想用下面的方法在WPF應用程序.NET Framework 4 Client Profile,但我收到此錯誤:類型或命名空間名稱「異步」找不到

The type or namespace name 'async' could not be found

我使用

using System.Threading.Tasks; 

任何想法可能是錯的?在此先感謝

private async Task SumPageSizesAsync() 
{ 
    HttpClient client = new HttpClient(); 
    Task<byte[]> getContentsTask = client.GetByteArrayAsync(url); 
    byte[] urlContents = await getContentsTask; 
} 

我使用VS 2010

+0

感謝編輯 – GibboK

+0

http://blogs.msdn.com/b /bclteam/archive/2012/10/22/using-async-await-without-net-framework-4-5.aspx?PageIndex=3 –

回答

20

嗯,有兩件事情:

  • 你需要使用一個C#編譯器5,例如VS2012。如果您使用VS2010,則無法使用異步。鑑於錯誤消息,我懷疑你使用了錯誤的編譯器版本。
  • 您需要使用Microsoft.Bcl.Async NuGet package在相應的庫支持,帶來.NET 4
+0

感謝您的幫助。 – GibboK

+1

如果我使用VS 2010,這個鏈接是合適的http://www.microsoft.com/en-us/download/details.aspx?id=9983 – GibboK

+3

@GibboK:好吧,但這只是一個CTP,包括已知的錯誤。你應該升級到VS2012,或者接受你將無法使用async/await。我會*真的*謹慎使用CTP。 –

10

如果您正在使用Visual Studio 2012+和您停止輸入你得到一個紅色squiggley線的那一刻,你可能在完成編寫方法簽名之前,請在async關鍵字上查看此錯誤消息。

完成編寫方法簽名,確保沒有任何其他編譯器問題,並等待一秒鐘左右的Visual Studio趕上。

+0

這是正確的答案。 – abelabbesnabi

5

在我的情況下返回類型失蹤,消息是由原因代碼:

private async button1_Click(object sender, EventArgs e) 

,並應

private async void button1_Click(object sender, EventArgs e) 
相關問題