Arrêter un thread en C#
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
I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.
LinkedIn