Der subtile Unterschied in der asynchronen Programmierung:
und direkt return await
zurückgeben
Task<T>
In der asynchronen Programmierung ist die Auswahl von und direkter
return await
Task<T>
Die Vorteile von
Dieser subtile, aber wichtige Unterschied wird in return await
in den -blöcken erscheinen. Betrachten Sie das folgende Beispiel:
In diesem Beispiel, wenn try
eine asynchrone Operation ist, die lange Zeit ausgeführt wird, wird die using
-Anweisung nach der Rückkehr return await
<code class="language-csharp">Task<someresult> DoSomethingAsync() { using (var foo = new Foo()) { return foo.DoAnotherThingAsync(); } }</code>
foo.DoAnotherThingAsync()
Im Gegenteil ist die Verwendung von using
in der asynchronen Methode unterschiedlich: DoAnotherThingAsync()
foo
DoAnotherThingAsync()
In diesem Fall stellen
Blockfreigabe return await
abgeschlossen werden. Dieses Verhalten steht im Einklang mit der erwarteten Funktion und verhindert potenzielle Fehler.
<code class="language-csharp">async Task<someresult> DoSomethingAsync() { using (var foo = new Foo()) { return await foo.DoAnotherThingAsync(); } }</code>
await
using
Obwohl foo
in den meisten Fällen direkt zurückkehren, wenn der
-Block verwendet wird, bietet die -Struktur einen Schlüsselvorteil. Durch die korrekte Freigabe von Ressourcen beiträgt bei der Aufrechterhaltung der Code -Integrität und zur Verhinderung von Unfällen.
Das obige ist der detaillierte Inhalt vonRückgabe warten gegen Direktaufgabenrückgabe: Wann ist es wichtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!