2014-01-14 8 views
11
gefunden werden kann

Ich versuche, die folgende Methode in einer WPF-Anwendung zu verwenden .NET Framework 4 Client Profile aber ich erhalte diesen Fehler:Der Typ oder Namespace-Name ‚async‘ nicht

The type or namespace name 'async' could not be found

Ich bin mit

using System.Threading.Tasks; 

Irgendeine Idee, was könnte falsch sein? Vielen Dank im Voraus

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

Ich verwende VS 2010

+0

Dank für die Bearbeitung – GibboK

+0

http://blogs.msdn.com/b /bclteam/archive/2012/10/22/using-async-wait-without-net-framework-4-5.aspx?PageIndex=3 –

Antwort

20

Nun gibt es zwei Dinge:

  • Sie benötigen einen C# 5 Compiler zu verwenden, z.B. VS2012. Wenn Sie VS2010 verwenden, können Sie Async nicht verwenden. Angesichts der Fehlermeldung vermute ich, dass Sie die falsche Compiler-Version verwenden.
+0

Danke für Ihre Hilfe zu diesem Thema. – GibboK

+1

Falls ich VS 2010 benutze ist dieser Link http://www.microsoft.com/en-us/download/details.aspx?id=9983 – GibboK

+3

@GibboK: Naja wäre es, aber das ist nur ein CTP, inklusive bekannte Fehler. Sie sollten auf VS2012 upgraden oder akzeptieren, dass Sie async/await nicht verwenden können. Ich würde * wirklich * vor der Verwendung des CTP warnen. –

10

  • Sie müssen sich für 4. .NET die Microsoft.Bcl.Async NuGet package zu bringen, in der entsprechenden Bibliothek Unterstützung verwenden, wenn Sie Visual Studio verwenden 2012+ und Sie zu stoppen, sobald Sie eine rote Linie squiggley erhalten eingeben, können Sie Beachten Sie diese Fehlermeldung im async-Schlüsselwort, bis Sie mit dem Schreiben der Methodensignatur fertig sind.

    Beenden Sie das Schreiben der Methodensignatur, stellen Sie sicher, dass keine anderen Compilerprobleme auftreten, und warten Sie eine Sekunde, bis Visual Studio den Prozess beendet hat.

  • +0

    Das ist die richtige Antwort. – abelabbesnabi

    5

    In meinem Fall der Rückgabetyp fehlte, war Meldung Ursache von Code:

    private async button1_Click(object sender, EventArgs e) 
    

    und

    sollte
    private async void button1_Click(object sender, EventArgs e) 
    
    Verwandte Themen