找不到类型或命名空间名称“异步”[重复]
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
是一个有效的类型名称,所以您可能正在尝试编写一个返回该类型的方法。以上是关于找不到类型或命名空间名称“异步”[重复]的主要内容,如果未能解决你的问题,请参考以下文章
vs2008中的错误 1 找不到类型或命名空间名称“Graphics”(是不是缺少 using 指令或程序集引用?)怎么解决?急