On a vu comment on peut faire réaliser certaines actions par un thread dédié, en « économisant les threads » (pool de threads) ou en associant à cette action la notion de tâche. Mais ce n’est pas un comportement réellement asynchrone qui est envisagé dans les parties précédentes.
On entend par appel asynchrone, la séquence suivante :
on fait un appel vers une ressource, éventuellement externe,
le contexte d’appel est capturé
l’algorithme se poursuit sans que l’on attende la réponse (l’appel serait synchrone, on attendrait la réponse),
la réponse arrive : elle est alors traitée et on retrouve le contexte d’appel.
Depuis la version 5 du langage C#, Microsoft a introduit deux mots-clés, async et await, dans le langage.
Grâce à ce mot-clé, le compilateur reçoit l’information d’un appel asynchrone. Fort de cette information, il compile une sorte de machine à états dont celui qui correspond à l’attente de la réponse asynchrone.
Le type de retour d’une méthode async doit être void, Task ou Task<T>.
Ce mot-clé permet justement d’indiquer quel est le traitement à effectuer dès lors que le traitement asynchrone est terminé, c’est-à-dire qu’une ...
Abonnement
tous les livres et vidéos ENI en illimité sans engagement
du livre imprimé ou du livre numérique