Ich habe diese asynchrone Methode in ASP.NET MVC 4 WEB API Controller, die ich von diesem Blog bekommen habe: Ссылка
%Vor%Meine Frage ist, warum genau diese Methode einen Rückgabetyp der Aufgabe hat? Es ist nicht klar, "wohin" oder "an wen" es diese Aufgabe zurückgibt? Es ist so, als ob niemand auf das zurückgegebene Objekt wartet / es empfängt.
Ich frage mich, was die Implikationen sein werden, wenn ich wie folgt zurückkomme:
BEARBEITEN:
Ich habe den folgenden Code ausprobiert und es bricht das Programm komplett ab. Es ist, als ob die Laufzeit den Verweis auf den Code verliert, der Code selbst läuft nicht ab.
%Vor%Die ASP.NET-Laufzeit wartet darauf. Sie können dieses Video nützlich finden.
Die meisten Beispiele für async
setzen einen UI-Kontext voraus. ASP.NET bietet auch einen Kontext , aber es ist ein "Anfrage" -Kontext - einer für jedes HTTP anfordern. Mein async
/ await
post gibt einen Überblick über diesen "Kontext", und die async
/ await
FAQ geht noch viel weiter Detail.
Mit dem Rückgabetyp void warten Sie nicht auf die Rückgabe eines Objekts. Sie warten auf den Abschluss eines Vorgangs. Sie warten, bis Ihre Aufgabe abgeschlossen ist.
Wenn Sie void zurückgeben, geben Sie sofort die Antwortnachricht "Kein Inhalt" zurück, ungeachtet des Beendigungsstatus Ihres asynchronen Vorgangs. Dies geschieht mit Hilfe von VoidResultConverter
.
Hinweis: Auf RC sehen Sie, dass es 200 "OK" Antwort, aber mit zurückgibt das RTM, wird 204 "Kein Inhalt" Antwort zurückgeben.
Tags und Links asp.net-web-api c# async-await asp.net-mvc-4 async-ctp