Bonjour,

Dans mon programme, j'ai une classe Main qui lance plusieurs threads.
J'ai une classe ComportementThread qui gère le comportement des threads que je lance.

Ici le comportement de mes threads est juste d'écrire, les paramètres que je leur passe dans une console.
J'aimerais pouvoir faire que mes threads se suicident directement de l'intérieur (dans la classe ComportementThread).

Je sais que je peux tuer les threads dans ma classe main avec la méthode Abort(), mais ce n'est pas ça que je veux.

J'ai essayé un Environnement.Exit(0), mais ça arrête tout.

Pour infos voici mes classes :

ComportementThread :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
 
namespace ExSCHAPEL
{
    class ComportementThread
    {
        private string id;
        private string commande;
 
        // Constructeur
        public ComportementThread(string a, string b)
        {
            this.id = a;
            this.commande = b;
        }
 
        // Setters
        public void SetID(string s)
        {
            this.id = s;
        }
 
        public void SetCommande(string s)
        {
            this.commande = s;
        }
 
        // Getters
        public string GetID()
        {
            return this.id;
        }
 
        public string GetCommande()
        {
            return this.commande;
        }
 
        // Comportement du thread
        public void ThreadLoop()
        {
            while (Thread.CurrentThread.IsAlive)
            {
                Console.WriteLine(this.id + " " + this.commande);
                Thread.Sleep(250);
 
            }
 
        }
 
 
 
    }
}
Main :
Juste comment j'appelle mon thread..

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
ComportementThread comport = new ComportementThread("bonjour", "au revoir");
Thread T = new Thread(new ThreadStart(comport.ThreadLoop));
T.Start();
Avez vous une idée ?
Merci de votre aide.