Dans la programmation asynchrone, la valeur de retour de la méthode est
ou aura un effet significatif. Cet article explorera les scènes applicables de chaque choix. async
Task
Retour à la tâche void
Habituellement, la méthode doit retourner . Cela permet d'appeler le code cette tâche et de suivre ses progrès si nécessaire. L'exception principale de cette règle est lorsque vous avez clairement besoin que
renvoie le type, tel que la gestion des événements.
async
Retour à void Task
await
void
Utilisez la méthode Retour Type
dans la méthode asynchrone ne sera pas observée sous défaut. Ils deviendront une exception non préparée et pourront déclencher le programme de traitement .
Considérez l'exemple suivant:
void
async
Dans cet exemple, les mots clés Task
et void
ne sont pas nécessaires car il n'est pas nécessaire de gérer explicitement les anomalies. Cependant, si des anomalies se produisent, elles ne seront pas observées et ne peuvent pas être traitées correctement. TaskScheduler.UnobservedTaskException
<code class="language-csharp">public static async void AsyncMethod2(int num) { await Task.Factory.StartNew(() => Thread.Sleep(num)); }</code>
méthodes asynchrones, veuillez considérer le code suivant: async
await
, ce qui conduira à des comportements inutiles. Best Practice
Task
En tant que meilleure pratique, à moins que vous ayez clairement besoin que void
renvoie le type, vous retournerez toujours
<code class="language-csharp">static async void f() { await h(); } static async Task g() { await h(); } static async Task h() { throw new NotImplementedException(); }</code>
la tâche et suivre ses progrès. f
g
Pour plus de détails, veuillez vous référer au document de Microsoft sur TaskScheduler.UnobservedTaskException
/
https://www.php.cn/link/d3ddedd999aa150f47c2d0a55cb17898
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!