Leere Ausgabe in Async-Methode vom WEB API Controller

8

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%     
user1561202 11.08.2012, 13:33
quelle

3 Antworten

7

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.

    
Stephen Cleary 11.08.2012, 15:24
quelle
0

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.

    
user1527329 11.08.2012 13:35
quelle
0

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.

    
tugberk 11.08.2012 15:33
quelle