2014-01-14 100 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) 
相关问题