Hi Leute,
mein Problem ist, dass ich den Thread t mit t.interrupt() nicht abgewürgt bekomme. Mit stop() kein Problem, aber diese Methode soll man ja nicht (mehr) verwenden.
Wenn ich das Programm laufen lasse, bekomme ich auf der Konsole wohl "Interrupt in sleep()" angezeigt, aber nicht das "Machen-Thread interrupted". D.h. der Thread läuft munter weiter, obwohl er eigentlich beendet sein sollte. Kann mir jemand einen Tipp geben, wie ich den Thread auf saubere Weise beenden kann? (Den Thread möchte ich gerne als innere Klasse aufsetzen). Code siehe unten...
Danke schonmal und besten Gruß
El Lobo
mein Problem ist, dass ich den Thread t mit t.interrupt() nicht abgewürgt bekomme. Mit stop() kein Problem, aber diese Methode soll man ja nicht (mehr) verwenden.
Wenn ich das Programm laufen lasse, bekomme ich auf der Konsole wohl "Interrupt in sleep()" angezeigt, aber nicht das "Machen-Thread interrupted". D.h. der Thread läuft munter weiter, obwohl er eigentlich beendet sein sollte. Kann mir jemand einen Tipp geben, wie ich den Thread auf saubere Weise beenden kann? (Den Thread möchte ich gerne als innere Klasse aufsetzen). Code siehe unten...
Danke schonmal und besten Gruß
El Lobo
Java:
Thread t = new Thread(new Machen());
...
t.start(); // Thread starten mit JButton "Start"
...
t.interrupt(); // Thread stoppen mit JButton "Stop"
...
private class Machen extends Thread { //Thread als innere Klasse
@Override
public void run() {
while ( !isInterrupted() ){
...
try {
Thread.sleep(100);
}
catch ( InterruptedException e )
{
interrupt();
System.out.println( "Interrupt in sleep()" );
}
}
System.out.println("Machen-Thread interrupted");
}
}