tâche.result et .getAwaitter ().
Lors du traitement du code asynchrone, les développeurs doivent souvent effectuer des méthodes d'exécution simultanées. Cela peut être implémenté en utilisant ou . Cependant, il existe des différences subtiles entre ces deux méthodes, ce qui mérite d'être considérée.
. Ce comportement est très important pour un traitement correct.tâche. Selon Microsoft, la conception de
et consiste à maintenir la compatibilité arrière. Par conséquent, ils sont emballés dans Task.GetAwaiter().GetResult()
pour maintenir le code existant. Cependant, cette méthode peut rendre les erreurs de détermination de la tâche réelle difficile. Task.Wait
Task.Result
suggestion AggregateException
Bien que présente plus d'avantages dans le traitement anormal que et , ces trois méthodes peuvent conduire à des serrures mortes potentielles et à la faim de piscine en filetage. La meilleure pratique consiste à éviter de bloquer les tâches asynchrones, mais de s'appuyer sur le mode
, ce qui permet aux applications de continuer à fonctionner lors de l'exécution de tâches en arrière-plan.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!