Multithreading en C#

Chaque application s’exécute avec au moins un thread. Alors qu’est-ce qu’un thread? Un thread n’est rien d’autre qu’un processus. Le multithreading en C# est un processus dans lequel plusieurs threads fonctionnent simultanément. C’est un processus pour atteindre le multitâche. Cela permet de gagner du temps car plusieurs tâches sont exécutées à la fois. Pour créer une application multithread en C#, nous devons utiliser le namespace System.Threding.
 
 
Le namespace System.Threding contient des classes et des interfaces pour permettre la programmation multithread. Il fournit également des classes pour synchroniser la ressource de thread. Voici la liste des classes couramment utilisées:

  • Thread
  • Mutex
  • Timer
  • Volatile
  • Monitor
  • ThreadPool
  • ThreadLocal
  • Semaphore
Exemple : un seule thread
using System; 
using System.Threading; 
  
public class Multithreading { 
    // Méthode 1 
    public static void myMethod1() 
    { 
        // Afficher les nombres de 0 à 10 
        for (int i = 0; i <= 10; i++) { 
  
            Console.WriteLine("Méthode 1 : {0}", i); 
 
            if (i == 4) { 
                Thread.Sleep(6000); 
            } 
        } 
    } 
    // Méthode 2
    public static void myMethod2() 
    { 
        // Afficher les nombres de 0 à 10 
        for (int j = 0; j <= 10; j++) { 
            Console.WriteLine("Méthode 2 : {0}", j); 
        } 
    } 
} 

public class WayToLearnX { 

    public static void Main() 
    { 
        Multithreading.myMethod1(); 
        Multithreading.myMethod2(); 
    } 
}

La sortie :

Méthode 1 : 0
Méthode 1 : 1
Méthode 1 : 2
Méthode 1 : 3
Méthode 1 : 4
Méthode 1 : 5
Méthode 1 : 6
Méthode 1 : 7
Méthode 1 : 8
Méthode 1 : 9
Méthode 1 : 10
Méthode 2 : 0
Méthode 2 : 1
Méthode 2 : 2
Méthode 2 : 3
Méthode 2 : 4
Méthode 2 : 5
Méthode 2 : 6
Méthode 2 : 7
Méthode 2 : 8
Méthode 2 : 9
Méthode 2 : 10

Dans la méthode 1, la boucle for commence à 0 lorsque la valeur de i est égale à 4, puis la méthode se met en veille pendant 6 secondes. Après 6 secondes, elle reprend son traitement et affiche les valeurs restantes. Jusqu’à ce que la méthode 2 soit dans l’état d’attente. La méthode 2 commence à fonctionner lorsque la méthode 1 termine la tâche qui lui est assignée. Donc, pour surmonter les inconvénients liés à un seul thread le multithreading est introduit.
 
Programmation orientée objet en C#

Exemple : Multithreading
using System; 
using System.Threading; 
  
public class Multithreading { 
    // Méthode 1 
    public static void myMethod1() 
    { 
        // Afficher les nombres de 0 à 10 
        for (int i = 0; i <= 10; i++) { 
  
            Console.WriteLine("Méthode 1 : {0}", i); 
 
            if (i == 5) { 
                Thread.Sleep(6000); 
            } 
        } 
    } 
    // Méthode 2
    public static void myMethod2() 
    { 
        // Afficher les nombres de 0 à 10 
        for (int j = 0; j <= 10; j++) { 
            Console.WriteLine("Méthode 2 : {0}", j); 
        } 
    } 
} 

public class WayToLearnX { 

    public static void Main() 
    { 
        // Création et initialisation de threads
        Thread t1 = new Thread(Multithreading.myMethod1); 
        Thread t2 = new Thread(Multithreading.myMethod2); 
        t1.Start(); 
        t2.Start();		
    } 
}

La sortie :

Méthode 1 : 0
Méthode 1 : 1
Méthode 1 : 2
Méthode 1 : 3
Méthode 1 : 4
Méthode 1 : 5
Méthode 2 : 0
Méthode 2 : 1
Méthode 2 : 2
Méthode 2 : 3
Méthode 2 : 4
Méthode 2 : 5
Méthode 2 : 6
Méthode 2 : 7
Méthode 2 : 8
Méthode 2 : 9
Méthode 2 : 10

Ici, nous créons et initialisons deux threads t1 et t2 en utilisant la classe Thread. Maintenant, utilisez t1.Start(); et t2.Start(); nous commençons l’exécution des deux threads. Maintenant, les deux threads s’exécutent simultanément et le traitement de t2 ne dépend pas du traitement de t1.
qcm-csharp

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *