Bonjour,
Le programme ci-dessous a pour mission de lire des badges magnétiques à partir d'une connexion Series RS232. Tout marche bien pour ce qui est de la lecture des badges. Les numéros lus sont stockés dans un vecteur.
Toutefois si, après 10 secondes, aucun nouveau badge n'est lu, je veux terminer mon programme. J'obtiens bien le message "Timeout détecté" ce qui prouve que je sors bien de ma boucle et le message "Programme terminé".
Cependant en réalité, mon programme ne se termine pas. Je suppose que l'instruction t.interrupt() n'a aucun effet et que le thread reste actif. La classe SerialReader invoquée par :
sr = new SerialReader(in);
lance des instructions pour se mettre à l'écoute d'un numéro reçu du lecteur de badge. Lorsque le numéro est lu un retour à la classe appelante est réalisé. A mon avis, comme aucun autre badge n'a été passé devant le lecteur, cette classe ne retourne rien et donc reste à l'écoute (mais je n'en suis pas certain).
Y-a-t-il un moyen de forcer (proprement) ce thread à se terminer. J'ai pensé à lancer " serialPort.close();" avant t.interrupt(); mais je ne suis pas sûr que ce serait la bonne solution.
Merci d'avance pour tout conseils ou critiques.
Gérard
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92

 

 
		
		 
         
  
			
			

 
   


 Terminer un Thread
 Terminer un Thread
				 Répondre avec citation
  Répondre avec citation



 
			 
 


 
			 
  

Partager