Bonjour tous le monde,
j'ai vu que la méthode stop étais deprecated, j'ai donc regardé un peu sur internet comment stoper un thread proprement, dans ma class serveur j'ai donc rajouté une méthode:
et modifié mon while
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void terminate() { running = false; }
et dans mon main j'ai fais les choses ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void run() { while (running) try { ...etc
mais impossible d'appeler ma méthode terminate
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 public class UImain extends Application { private static Thread srvthread; // ............................................ @FXML public void startserv(ActionEvent event) { setSrvthread(new Serveur()); srvthread.start(); } @FXML public void stopserv(ActionEvent event) { if (srvthread != null) { getSrvthread().terminate; } } public static void main(String[] args) { launch(args); } public static Thread getSrvthread() { return srvthread; } public static void setSrvthread(Thread srvthread) { UImain.srvthread = srvthread; } }
Pourquoi ?
Merci![]()
Partager