La différence clé entre
et dans la programmation asynchrone await Task.Run(); return;
return Task.Run();
Dans la programmation asynchrone, la compréhension de la différence entre
est très importante. Bien que ces deux structures semblent similaires, leur comportement est essentiellement différent: await Task.Run();
return Task.Run();
Disposition:
Une différence significative est que la dissémination anormale. Les anomalies lancées dans la méthode asynchrone sont stockées dans l'objet
renvoyé, et l'état est observé avant l'observation de la tâche. Au lieu de cela, dans la méthode non exotique , toute anomalie de lancer sera immédiatement déclenchée sur le même fil, ce qui facilite la capture.
Task
Perception du contexte synchrone: Task
Task
La possibilité de serrure morte:
Dans certains cas, appeler Task
dans le thread d'interface utilisateur peut conduire à une impasse. En effet, le thread est bloqué et attend que await
se termine, empêchant ainsi efficacement l'interface utilisateur de mettre à jour. Task
Évitez ce problème en exécutant des tâches.
Différence de code:
et Code généré. Le premier génère un état asynchrone, tandis que le second crée un objet await Task.Run()
. La machine à états asynchrones permet aux méthodes de suspendre et de récupérer une fois la tâche terminée. Task
return Task.Run()
En bref, bien que et
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!