Maison >développement back-end >C++ >Tâche asynchrone vs Async void: Quand devriez-vous retourner une tâche?

Tâche asynchrone vs Async void: Quand devriez-vous retourner une tâche?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-02-01 13:56:09688parcourir

Async Task vs. Async Void: When Should You Return a Task?

dans la programmation asynchrone,

et Sélection de valeur de retour async Task async void Il est courant d'utiliser

et

dans la programmation asynchrone, mais le choix async ou await comme méthode de retour est souvent déroutant. public async Task AsyncMethod(int num) public async void AsyncMethod(int num) return

Task En général, le retour est le premier choix. Il permet à l'appelant de suivre la progression de l'opération asynchrone et d'attendre qu'il se termine. Ceci est très utile lorsque la tâche indique qu'il peut nécessiter une longue période pour exécuter des opérations.

return Task

Retour à Habituellement utilisé pour les opérations asynchrones, n'a pas besoin de signaler ses progrès ou le destinataire n'a pas besoin d'attendre qu'il se termine. Un scénario approprié consiste à gérer les événements, car les procédures de traitement des événements ne sont généralement pas retournées. void Mots-clés non nécessaires

void Dans certains cas,

et

peuvent ne pas être nécessaires. Par exemple, si votre méthode exécute uniquement une seule opération asynchrone et n'a pas besoin de suivre ses progrès, vous pouvez utiliser la syntaxe suivante:

Cependant, dans ce cas, il est toujours recommandé d'utiliser

et async, car ils garantissent le traitement correct des anomalies, en particulier lorsque l'opération asynchrone jette l'anomalie sans précédent de l'appelant. await

Autres précautions
<code class="language-csharp">public static void AsyncMethod2(int num)
{
    Task.Factory.StartNew(() => Thread.Sleep(num));
}</code>

async Les méthodes await sont considérées comme des opérations asynchrones "au niveau supérieur" et ont des règles spéciales dans un traitement anormal.

Si la méthode de niveau supérieur est lancée anormalement, l'appelant ne l'observe pas toujours. Utiliser et

pour s'assurer que l'exception peut être correctement gérée dans les méthodes asynchrones supérieures et non -TOP.

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