Ruft Task.Wait () unmittelbar nach einer asynchronen Operation auf, die der synchronen Ausführung derselben Operation entspricht?

it anderen Worten, ist

var task = SomeLongRunningOperationAsync();
task.Wait();

funktional identisch mit

SomeLongRunningOperation();

Anders ausgedrückt, ist

var task = SomeOtherLongRunningOperationAsync();
var result = task.Result;

funktional identisch mit

var result = SomeOtherLongRunningOperation();

Gemäß Task.Wait und Inlining, wenn die Aufgabe @ iWait 'D on hat bereits mit der Ausführung begonnen,Wait muss blockieren. Wenn die Ausführung jedoch noch nicht begonnen hat, wirdWait ist möglicherweise in der Lage, die Zielaufgabe aus dem Scheduler zu ziehen, in den sie eingereiht wurde, und sie im aktuellen Thread inline auszuführen.

Bei diesen beiden Fällen muss lediglich entschieden werden, auf welchem Thread der Task ausgeführt wird, und wenn Sie trotzdem auf das Ergebnis warten, spielt es dann eine Rolle?

Ist die Verwendung des asynchronen Formulars gegenüber dem synchronen Formular von Vorteil, wenn zwischen dem asynchronen Aufruf und dem @ nichts ausgeführt wirWait()?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage