Maison >développement back-end >C++ >`.GetAwaiter().GetResult()` vs `Task.Result` : quand devez-vous utiliser chacun ?
et : Quand sera-t-il utilisé? Task.GetAwaiter().GetResult()
Task.Result
La nécessité d'effectuer des méthodes asynchrones dans le code est très courante. Cela peut être réalisé par les attributs ou
Task
.GetAwaiter().GetResult()
.Result
Appelez le Task.GetAwaiter().GetResult()
récupérer directement ses résultats ou jeter les anomalies inhabituelles. Ce comportement est meilleur que et , car il assure la propagation des anomalies primitives et ne sera pas encapsulé dans
Task
Cependant, il est important de noter que .GetAwaiter().GetResult()
, comme .Wait()
et .Result
, il existe un risque d'épuisement des verrous morts et des ressources de pool de threads. AggregateException
.GetAwaiter().GetResult()
.Wait()
.Result
L'attribut
.
Task.Result
Quand utiliser quelle méthode
Bien que ait les avantages d'une communication anormale, il est fortement recommandé d'éviter que possible l'obstruction synchrone des tâches asynchrones. Cette méthode peut conduire à des serrures et des ressources mortes. Au contraire, envisagez d'utiliser le mécanisme pour écrire un code asynchrone complet pour éviter ces problèmes. Task
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!