Sommaire

La programmation asynchrone

Le problème de la notification par fonction de rappel (callback) est… la fonction de rappel elle-même. En effet, elle est exécutée depuis un thread différent et on ne peut pas faire n’importe quoi dedans…

Depuis la version 4.5 de .NET (proposée avec Visual Studio 2012), les mots-clés async et await ont fait leur apparition et ont considérablement simplifié la programmation asynchrone. En effet, ce duo permet de transformer à moindre coût des méthodes bloquantes et "chronophages" en méthodes asynchrones (donc non bloquantes) pour que l’application reste réactive.

1. Le mot-clé asyncasync

Le mot-clé async informe le compilateur que la méthode qui suit aura un mode d’exécution asynchrone. Par convention et sans obligation, il est de bon ton de terminer le nom de la méthode par Async pour que sa lecture évoque à ses utilisateurs ce mode de fonctionnement particulier.

Exemple

private async void LongTravailAsync(){...

2. Contenu d’une méthode async

Une méthode async a un comportement "synchrone" jusqu’à ce que son exécution rencontre une ligne commençant par le mot-clé await. À ce moment-là, elle redonne le contrôle à son appelant sans pour autant se terminer et l’instruction suivant le mot-clé await commence une exécution asynchrone. await

Le code final ...