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()
?