Maison > développement back-end > C++ > Async / Await en C #: Quand retourner la tâche vs void?

Async / Await en C #: Quand retourner la tâche vs void?

Barbara Streisand
Libérer: 2025-02-01 14:11:08
original
659 Les gens l'ont consulté

Async/Await in C#: When to Return Task vs. Void?

C # Programmation asynchrone

La valeur de retour de la méthode: async ou Task? void

Lorsque vous utilisez C # pour la programmation asynchrone, la méthode

peut retourner async ou Task. Ce choix est essentiel car il détermine le comportement de la méthode et sa façon d'interagir avec le code d'appel. void

Quand retourner

Task

Habituellement, lorsque vous souhaitez progresser ou résultat de l'opération asynchrone à la fête d'appel, vous devez retourner

. Cela permet à l'appelant d'attendre la tâche et de continuer à fonctionner une fois sa fin. Retour à Task peut également utiliser un traitement anormal et un mode asynchrone, tels que Task, qui peuvent surveiller la progression de plusieurs tâches. async-foreach

Quand retourner

void

La seule situation qui convient pour retourner

à async est lorsque vous avez clairement besoin de type void Retour, par exemple, dans le programme de traitement des événements ou le rappel d'interface utilisateur. Dans ces cas, l'appelant ne devrait pas être en mesure d'attendre cette méthode, et les mots clés et void ne sont pas nécessaires. async await Évitez la méthode de niveau supérieur

La méthode de a une sémantique spéciale et doit être utilisée avec prudence. Ils représentent les principales opérations asynchrones et, par rapport à la méthode de retour des tâches, ils ont des règles de traitement anormales différentes. Les anomalies dans la méthode du haut sont considérées comme des anomalies non transformées et peuvent entraîner un comportement accidentel. async void

Par exemple, considérez le code suivant:

async void void Dans ce cas, l'utilisation de

n'est pas nécessaire, et il peut y avoir des problèmes, car:

public static async void AsyncMethod2(int num)
{
    await Task.Factory.StartNew(() => Thread.Sleep(num));
}
Copier après la connexion
Il empêche la partie d'appel d'attendre cette méthode et de surveiller ses progrès.

Les anomalies de la méthode ne seront pas traitées et peuvent provoquer un comportement d'application anormal. async void

    Il est préférable d'utiliser la méthode et les mots clés
  1. pour assurer le traitement anormal correct et maintenir la capacité de suivre et de gérer les opérations asynchrones.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal