Bonjour à tous.
J'ai une classe qui lance un thread dans le constructeur, thread qui tourne en permanence.
Ce thread doit s'arrêter lorsque'il n'existe plus de référence de l'objet qui l'a lancé. Ce qui n'est pas le cas avec le code suivant :
J'aimerais que le thread s'arrête quand on n'utilise plus l'objet. Est-ce qu'il y a un moyen de savoir que l'objet n'a plus de référence vers lui, pour arrêter le thread automatiquement ?
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 class Toto { Thread t; volatile bool stop = false; public Toto() { t = new Thread(new ThreadStart(executingMethod)); t.IsBackground = true; t.Start(); } private void executingMethod() { Thread.Sleep(1000); while (! stop) { Console.WriteLine("Toto active"); Thread.Sleep(1000); } } private void Stop() { Console.WriteLine("Stop called"); stop = true; } } class Program { static void Main(string[] args) { Toto t = new Toto(); Console.ReadLine(); t = null; // J'aimerai que le thread s'arrete à ce moment la... Console.ReadLine(); } }
Je ne sais pas si j'ai été clair.
Merci d'avance pour vos réponses !
Partager