Bonjour !
Parfois quand je me déconnecte d'internet ou quand ma box plante, le thread que j'ai créé ne se termine tout simplement jamais.
D'après mes recherches, cela vient de la ligne connection.getInputStream() qui attend tout simplement un EOF (end of file) qui n'arrive jamais puisque la connexion est rompue.
J'essaye donc par tout les moyen de stopper cette &*!?% de ligne mais rien n'y fait je galère depuis au moins 3 jours...
En gros je lance mon thread et 20 secondes plus tard, j'utilise L.interrupt dans le cas où mon thread n'est pas terminé mais ça ne fonctionne tout simplement pas.
Comment puis-je y remedier ?
Code :
- public static void jelancecettefonction()
- {
- Thread t = new thread();
- t.start();
- Syst.sleep(20000);
- System.out.println("interruption !" );
- t.interrupt();
- }
- public void run()
- {
- System.out.print("debut thread !" );
- try
- {
- for(int a=0;a<20;a++)
- {
- System.out.println("a" );
- HttpURLConnection connection = null;
- System.out.println("b" );
- URL url = new URL("http://192.168.1.1/index.cgi/" );
- System.out.println("c" );
- connection = (HttpURLConnection) url.openConnection();
- System.out.println("d" );
- BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));
- System.out.println("e" );
- }
- }
- catch(Exception e)
- {
- System.out.print("Le thread s'est terminé par une exception." );
- }
- System.out.print("fin thread !" );
- }
|
Merci d'avance si vous pouvez m'aider !
Cordialement,
Reywas