Async Void et ASP.Net : comprendre l'exception
Lors de l'utilisation de méthodes async void dans les applications ASP.Net, vous pouvez rencontrer une exception indiquant : "Un module ou un gestionnaire asynchrone terminé alors qu'une opération asynchrone était toujours en attente." Cette exception se produit car async void incrémente le nombre d'opérations en attente lors de l'appel et le décrémente à la fin.
En revanche, les méthodes async Task renvoient un objet Task, permettant au framework ASP.Net de suivre l'opération asynchrone et de gérer achèvement gracieux.
Pourquoi Task aide
En renvoyant Task, vous activez le framework pour :
Async Void et Fire-and-Forget
Bien que les méthodes async void puissent sembler implémenter une approche «fire-and-forget», cela est inexact dans le contexte d'ASP.Net. Le framework suit activement ces méthodes, générant une exception si elles se terminent prématurément.
Pour obtenir un véritable comportement de tir et d'oubli, utilisez les méthodes de tâche asynchrones et ignorez la tâche renvoyée. Cependant, le retour prématuré des requêtes dans ASP.Net est généralement déconseillé en raison de problèmes potentiels.
Notes supplémentaires
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!