Methode die Fehlermeldung 'kann Nicht warten" - System.Threading.Aufgaben.Aufgabe' von await und async-Eigenschaften
Installiert hab ich den NuGet-Paket-Async für .NET Framework 4, Silverlight 4 und 5, Windows Phone 7.5 und 8.
Version 1.0.16
Ich bin mit Microsoft .NET 4.0 und ich kann nicht aktualisieren aufgrund von Web-Hosting-Paket Einschränkungen. (Leider!)
Mein test-Code: (ich mache eine Linq to SQL-Abfrage anstelle von Thread.Schlaf)
public class Search
{
public async Task<List<Result>> GetResults(string SearchString)
{
await System.Threading.Tasks.Task.Factory.StartNew(() => Thread.Sleep(1000));
}
}
Mein Fehler:
Cannot await 'System.Threading.Tasks.Task'
http://blogs.msdn.com/b/bclteam/p/asynctargetingpackkb.aspx spricht über die Fehler, aber es ist nicht wirklich die Antwort, da ich mich nicht mit VB und ich bin schon dabei, was die Lösung beschreibt.
[BEARBEITEN]
Ich bekomme eine Warnung:
Warning 4 The primary reference "Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Vielen Dank für Ihre Hilfe.
- Warten Sie auf den Schlaf ist immer noch verbrauchen die Zeit eines thread-pool-thread. Wenn Sie nicht über die Werkzeuge, die für die ordnungsgemäße asynchrone Operationen sind Sie wahrscheinlich besser nur mit völlig synchronen Methoden anstelle der Verwendung von async über sync.
- Dies ist eine test-Methode und nicht die tatsächliche Methode, die ich verwende. Ich arbeite mit einer SQL-Verknüpfung Abfrage an die Stelle der Schlaf.
- Dies ist eine web-Anwendung?
- Ja, MVC-4-Web-App.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was für ein Alptraum! Ich hab das problem gefunden.
Scheint es in meinem Fall, dass der Microsoft.Bcl und Microsoft.Bcl.Async in Konflikt. Ich entfernte die Microsoft.Bcl und Microsoft.Bcl.Async mit den folgenden Befehlen:
dann:
und dann nochmal installieren:
Nun es funktioniert einen Charme. Ich kann nicht glauben das? Auch nicht sicher, warum Microsoft.Bcl Links war es in den ersten Platz. Nach dem entfernen von Microsoft.Bcl.Async es zurückgelassen wird. So weit alles Prima funktioniert. Einige weitere Tests durchgeführt werden.
Wenn andere Probleme mit der NuGet-Pakete, können Sie versuchen, auf eigene Gefahr:
Dieser wird versuchen, ein Rollback Pakete, die aktualisiert wurden. Dies ist, wie ich das Problem entdeckt.
[BEARBEITEN]
Seine erwähnenswert, nach weiteren Tests, Microsoft.Bcl wird nicht entfernt, wenn man deinstalliert Microsoft.Bcl.Async. Microsoft.Bcl separat aktualisiert werden kann und es scheint, dass dieses update außerhalb von Microsoft.Bcl.Async kann ein Problem sein. Microsoft.Bcl ist installiert, wenn eine installiert Microsoft.Bcl.Async.
Hoffe, dies hilft anderen!
Ändern Sie die Konfiguration wie folgt:
Ersetzen [version] mit der version (zum Beispiel, 2.5.10.0) von
System.Runtime
undSystem.Threading.Tasks
, auf die Sie verweisen.<dependentAssembly>
Teile.