HOWTO · Csharp

Arrêter un thread en C#

Dans cet article, je vais vous expliquer comment démarrer et arrêter un thread en C#.

Sur cette page

Parfois, lorsque vous travaillez avec un thread en C#, vous pouvez vous retrouver dans une situation où vous devrez terminer un thread. C# fournit des méthodes pour vous permettre de le faire avec succès, et cet article vise à expliquer le processus de terminaison d’un thread en C#.

Pour notre objectif de terminer un thread, nous utiliserons la méthode Abort(). L’ThreadAbortException est lancée par la méthode Abort() au thread qui l’a appelée, et en réponse à cette exception, le thread est terminé.

Avant de pouvoir arrêter un thread, nous devons d’abord en lancer un. Pour accomplir la création d’un fil, suivez les étapes ci-dessous.

Utilisez la méthode Abort() pour arrêter un thread en C#

Pour utiliser les méthodes de la bibliothèque System.Threading pour démarrer et terminer un thread, importez-le.

using System.Threading;

Nous allons devoir créer une classe ThreadDemo.

class ThreadDemo {}

Nous allons créer une méthode de thread nommée threadAssign() dans cette classe, avec une boucle qui itère et produit First Thread quatre fois.

public void threadAssign() {
  for (int threadCount = 0; threadCount < 6; threadCount++) {
    Console.WriteLine("First Thread");
  }
}

Après cela, nous allons créer une nouvelle classe appelée ThreadExampleMain, incluant la fonction main.

class ThreadExampleMain {
  public static void Main() {}
}

Nous devons effectuer les opérations suivantes pour démarrer et arrêter un thread à l’intérieur de la méthode Main(). Créez et initialisez la variable threadDemo avec le type de données ThreadDemo.

ThreadDemo threadDemo = new ThreadDemo();

Nous allons utiliser la classe Thread pour initialiser une nouvelle variable et l’affecter au thread que nous avons créé précédemment.

Thread thread = new Thread(new ThreadStart(threadDemo.threadAssign));

Le thread peut être lancé en invoquant la fonction Start().

thread.Start();

Enfin, nous pouvons terminer le thread en utilisant la méthode Abort() de la bibliothèque System.Threading. Nous afficherons également "Thread is Abort" pour indiquer que le thread a été terminé.

Console.WriteLine("Thread is abort");
thread.Abort();

Code source:

using System;
using System.Threading;

class ThreadDemo {
  void threadAssign() {
    for (int threadCount = 0; threadCount < 6; threadCount++) {
      Console.WriteLine("First Thread");
    }
  }
  class ThreadExampleMain {
    public static void Main() {
      ThreadDemo threadDemo = new ThreadDemo();
      Thread thread = new Thread(new ThreadStart(threadDemo.threadAssign));
      thread.Start();
      Console.WriteLine("Thread is abort");
      thread.Abort();
    }
  }
}

Production:

First Thread
First Thread
First Thread
First Thread
First Thread
First Thread
Thread is abort