Maison >développement back-end >C++ >`.GetAwaiter().GetResult()` vs `Task.Result` : quand devez-vous utiliser chacun ?

`.GetAwaiter().GetResult()` vs `Task.Result` : quand devez-vous utiliser chacun ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-24 11:51:10262parcourir

`.GetAwaiter().GetResult()` vs. `Task.Result`: When Should You Use Each?

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

. Cependant, la compréhension des différences subtiles et des lacunes potentielles de ces deux méthodes est essentielle.

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

récupère également ses résultats. Cependant, toute autre anomalie incroyable dans l'opération asynchrone sera capturée et emballée dans

. 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn