找不到类型或命名空间名称“异步”[重复]

Posted

技术标签:

【中文标题】找不到类型或命名空间名称“异步”[重复]【英文标题】:The type or namespace name 'async' could not be found [duplicate] 【发布时间】:2014-02-02 05:16:31 【问题描述】:

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

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

我正在使用

using System.Threading.Tasks;

知道有什么问题吗?提前致谢

private async Task SumPageSizesAsync()

    HttpClient client = new HttpClient();
    Task<byte[]> getContentsTask = client.GetByteArrayAsync(url);
    byte[] urlContents = await getContentsTask;   

我正在使用 VS 2010

【问题讨论】:

确保没有遗漏返回类型:public static async void 【参考方案1】:

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

private async button1_Click(object sender, EventArgs e)

应该是

private async void button1_Click(object sender, EventArgs e)

【讨论】:

【参考方案2】:

如果您使用的是 Visual Studio 2012+,并且在收到红色波浪线时停止输入,您可能会在 async 关键字上看到此错误消息,直到您完成编写方法签名。

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

【讨论】:

【参考方案3】:

嗯,有两件事:

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

【讨论】:

如果我使用 VS 2010,这个链接是否合适microsoft.com/en-us/download/details.aspx?id=9983 @GibboK:好吧,但这只是一个 CTP,包括已知的错误。您应该升级到 VS2012,或者接受您将无法使用 async/await。我会真的告诫不要使用 CTP。 关于支持异步/等待的 Visual Studio 和 .NET 版本的信息:openstacknetsdk.org/docs/html/… 我不确定这是否是 VS 2013 语法突出显示/检查的问题,或者它是否正确。但是如果你在 VS2013 中创建了一个没有返回类型的异步方法(错误地 ofc!),它也会在编译和突出显示时出现这个错误。当真正出错时,您的方法没有返回类型。 @KidCode:可能是 - 因为async 是一个有效的类型名称,所以您可能正在尝试编写一个返回该类型的方法。

以上是关于找不到类型或命名空间名称“异步”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

找不到类型或命名空间名称“DbContext”[关闭]

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

vs2008中的错误 1 找不到类型或命名空间名称“Graphics”(是不是缺少 using 指令或程序集引用?)怎么解决?急

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

在 Xamarin Studio 中找不到类型或命名空间名称“页面”

C# 找不到类型或命名空间名称“NUnit”