dans la programmation asynchrone,
et Sélection de valeur de retour async Task
async void
Il est courant d'utiliser
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,
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
<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!