找不到类型或命名空间名称“async”

时间:2014-01-14 08:08:32

标签: c# .net wpf async-await

我正在尝试在WPF应用程序.NET Framework 4 Client Profile中使用以下方法,但是我收到此错误:

  

找不到类型或命名空间名称“async”

我正在使用

using System.Threading.Tasks;

知道可能出现什么问题吗?提前致谢

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

我正在使用VS 2010

3 个答案:

答案 0 :(得分:22)

嗯,有两件事:

  • 您需要使用C#5编译器,例如VS2012。如果您使用的是VS2010,则无法使用异步。鉴于错误消息,我怀疑您使用的是错误的编译器版本。
  • 您需要使用Microsoft.Bcl.Async NuGet package为.NET 4引入适当的库支持。

答案 1 :(得分:11)

如果您使用的是Visual Studio 2012+并且在获得红色波浪线的那一刻就停止输入,那么在您编写方法签名之前,您可能会在async关键字上看到此错误消息。

完成编写方法签名,确保没有任何其他编译器问题,并等待一秒左右让Visual Studio赶上。

答案 2 :(得分:11)

在我的情况下,返回类型丢失,消息是由代码引起的:

private async button1_Click(object sender, EventArgs e)

应该是

private async void button1_Click(object sender, EventArgs e)