Contenu du cours
C# Avancé Avec .NET
C# Avancé Avec .NET
Qu'est-ce Que le Threading ?
En termes de programmation C#, un "Thread" fait référence à une file d'attente d'opérations. Les opérations que nous écrivons dans le code sont généralement toutes mises en file d'attente dans un seul thread, qui sont ensuite exécutées une par une par le programme.
Jusqu'à présent, la plupart des programmes que nous avons réalisés, y compris les applications basées sur une interface graphique, fonctionnaient essentiellement sur un seul Thread Principal, qui est responsable de l'exécution des opérations principales du programme.
Cependant, dans certaines applications, il est impératif de pouvoir exécuter plusieurs opérations en même temps. Cela peut être fait en créant manuellement de nouveaux Threads et en exécutant des méthodes via ces threads, en parallèle avec le Thread Principal.
Un bon exemple où le threading est nécessaire est les navigateurs web. Les navigateurs web que nous utilisons habituellement sont conçus pour prendre en charge plusieurs opérations à la fois. Vous pouvez ouvrir autant d'onglets que vous le souhaitez, chacun pouvant effectuer des opérations en arrière-plan. Par exemple, vous pourriez regarder une vidéo sur un onglet et naviguer sur un site web sur un autre onglet sans aucune interruption.
Dans certains types de programmes, il est essentiel que l'ordinateur termine une tâche (ou opération) avant de passer à la suivante car l'opération de la tâche dépend du résultat de la tâche précédente. Cependant, dans beaucoup des programmes que nous écrivons, nous pouvons potentiellement faire face à un blocage en raison du programme étant exécuté sur un seul thread. Par exemple, nous pouvons avoir 4 tâches intensives en temps qui doivent être effectuées efficacement. Si nous exécutons ces tâches normalement, cela entraînerait un temps d'exécution long, et cela bloquerait également le programme de faire autre chose pendant ce temps :
Dans beaucoup de ces cas, l'ordinateur de l'utilisateur dispose de suffisamment de ressources CPU et mémoire pour effectuer toutes les tâches en même temps, mais la façon dont le programme est écrit l'amène à prendre plus de temps pour terminer les tâches.
Nous pouvons utiliser le Multi-Threading pour distribuer les tâches sur 4 threads différents et les exécuter tous simultanément, économisant ainsi beaucoup de temps :
Dans le prochain chapitre, nous verrons comment nous pouvons exécuter des méthodes sur différents threads.
Merci pour vos commentaires !