Sommaire

La programmation asynchrone

Il est de plus en plus nécessaire de développer des applications réactives et capables d’effectuer plusieurs tâches simultanément. Le framework .NET a apporté des solutions à ce problème depuis ses débuts avec les classes Thread ou BackgroundWorker, entre autres. Avec le framework .NET 4.0 sont arrivées la classe Task et sa contrepartie générique Task(Of TResult). Ces types ont simplifié le travail du développeur en permettant de gérer simplement le lancement ou l’attente de l’exécution de blocs de code, mais en fournissant aussi le moyen d’exécuter plusieurs traitements asynchrones à la suite.

L’arrivée de Visual Basic 2015 a encore simplifié la tâche du développeur avec l’intégration de l’asynchronisme directement dans le langage. En effet, les mots-clés Async et Await permettent d’écrire du code asynchrone de manière séquentielle, comme du code… synchrone !

1. Les objets Task

Les classes Task et Task(Of TResult) permettent l’exécution de code asynchrone en encapsulant l’utilisation de threads.

Fonctionnement des threads

Les threads sont des unités d’exécution qui peuvent travailler, selon l’architecture de la machine, en parallèle ou en pseudo parallèle (chaque thread s’exécute pendant une petite durée puis cède ...