Używam java.util.Timer
klasy i używam jej metody harmonogramu do wykonania jakiegoś zadania, ale po wykonaniu jej 6 razy muszę przerwać jej zadanie.
Jak mam to zrobić?
Odpowiedzi:
Zachowaj gdzieś odniesienie do timera i użyj:
timer.cancel();
timer.purge();
przestać cokolwiek robi. Możesz umieścić ten kod wewnątrz zadania, które wykonujesz, za pomocą a, static int
aby policzyć, ile razy przeszedłeś, np
private static int count = 0;
public static void run() {
count++;
if (count >= 6) {
timer.cancel();
timer.purge();
return;
}
... perform task here ....
}
cancel
samo zadziała.
Albo zadzwoń cancel()
naTimer
razie to wszystko robi, albo cancel()
naTimerTask
jeśli sam czasomierz ma inne zadania, które chcesz, aby kontynuować.
Powinieneś zatrzymać zadanie zaplanowane dla timera: Twój timer:
Timer t = new Timer();
TimerTask tt = new TimerTask() {
@Override
public void run() {
//do something
};
}
t.schedule(tt,1000,1000);
Aby zatrzymać:
tt.cancel();
t.cancel(); //In order to gracefully terminate the timer thread
Zwróć uwagę, że samo anulowanie licznika czasu nie zakończy trwających zadań czasowych.
Wyłącz stoper raz po przebudzeniu w określonym czasie w milisekundach.
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(" Run spcific task at given time.");
t.cancel();
}
}, 10000);