Simultane Ausführung asynchroner Aufgaben: Task.Result und Task.getaiter ().
Bei der Verarbeitung asynchroner Methoden müssen sie manchmal synchron ausführen. Es gibt jedoch zwei häufige Methoden zur synchronen Ausführung: und , es gibt wichtige Unterschiede zwischen ihnen.
packen Sie jede Abnormalität inund wirft die ursprünglichen Anomalien direkt.
Vorschlag Task.Wait
Task.GetAwaiter().GetResult()
Um die ursprünglichen Anomalien direkt zu verarbeiten, ist Task.Wait
besser als AggregateException
. Beide Methoden sollten jedoch so weit wie möglich vermieden werden, aber Task.GetAwaiter().GetResult()
sollte bevorzugt werden, da die ersten beiden die Erschöpfung der Ressource toter Schlösser und Fadenpools verursachen können.
Verschiedene Gründe Der Unterschied zwischen der abnormalen Behandlung von
und ergibt sich aus den strengen Kompatibilitätsanforderungen von Microsoft. Um den vorhandenen Code zu zerstören, behält Task.GetAwaiter().GetResult()
sein ursprüngliches Blockierungsverhalten bei und packt Abnormalitäten in Task.Wait
. async/await
verwenden. Es ist zu beachten, dass die Aufgabenfehler überprüft, anstatt ihre Ausführung zu blockieren.
Das obige ist der detaillierte Inhalt vonTask.Result vs. Task.GetAwaiter().GetResult(): Was ist der Unterschied zwischen synchroner Ausführung und Ausnahmebehandlung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!