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

Gib*_*boK 16 .net c# wpf async-await

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

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

我在用

using System.Threading.Tasks;
Run Code Online (Sandbox Code Playgroud)

知道什么可能是错的吗?提前致谢

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

我正在使用VS 2010

Jon*_*eet 25

嗯,有两件事:

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

  • @GibboK:好吧,但这只是一个CTP,包括已知的bug.您应该升级到VS2012,或者接受您将无法使用async/await.我会*真的*警告不要使用CTP. (3认同)

Jas*_*son 12

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

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


Tom*_*bes 12

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

private async button1_Click(object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)

应该是

private async void button1_Click(object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)