Heim >Backend-Entwicklung >C++ >„.GetAwaiter().GetResult()' vs. „Task.Result': Wann sollten Sie beide verwenden?
und : Wann wird es verwendet? Task.GetAwaiter().GetResult()
Task.Result
Die Notwendigkeit, asynchrone Methoden im Code durchzuführen, ist sehr häufig. Dies kann durch oder
Task
.GetAwaiter().GetResult()
.Result
rufen Sie die Task.GetAwaiter().GetResult()
direkt ab oder werfen Sie ungewöhnliche Anomalien aus. Dieses Verhalten ist besser als und , da es die Verbreitung primitiver Anomalien sicherstellt und in
Task
ist jedoch wichtig zu beachten, dass .GetAwaiter().GetResult()
wie .Wait()
und .Result
die Risiko einer Erschöpfung von toten Schlösser und Thread -Pool -Ressourcen besteht. AggregateException
.GetAwaiter().GetResult()
.Wait()
.Result
Das Attribut
erfasst und verpackt.
Task.Result
Wann verwenden Sie welche Methode
Obwohl die Vorteile einer abnormalen Kommunikation hat, wird dringend empfohlen, die synchrone Obstruktion asynchroner Aufgaben wie möglich zu vermeiden. Diese Methode kann zu toten Schlösser und Ressourcen führen. Erwägen Sie im Gegenteil, den -Mechanismus zu verwenden, um einen vollständigen asynchronen Code zu schreiben, um diese Probleme zu vermeiden. Task
Das obige ist der detaillierte Inhalt von„.GetAwaiter().GetResult()' vs. „Task.Result': Wann sollten Sie beide verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!