Hallo werte Gemeinde,
ich stehe vor folgendem Problem:
Ich möchte einen Timer starten, der in einem eigenen Thread gewisse Aufgaben erfüllen soll. Diesen starte ich per Checkbox und möchte ihn über diese wieder deaktivieren. Er soll nach Deaktivieren jedoch genau noch 1x zu Ende laufen.
Der CheckBox habe ich einen ActionListener zugewiesen, der den Timer in einem neuen Thread startet. Dieser soll später periodisch per Socken Daten von einem Arduino holen und in eine Datenbank schreiben. Das Programm selbst merkt davon nichts, da es losgelöst in einem eigenen Thread läuft.
Der Timer selbst:
Ich müsste doch eigentlich innerhalb des Timers prüfen, ob er von außen abgebrochen wurde. Wenn ja, einmal alles zu Ende bearbeiten und dann das Objekt löschen, oder? Oder wäre es hier besser, keinen Timer zu nehmen, sondern einen Thread und diesen dann zu pausieren?
VG
Steffen
ich stehe vor folgendem Problem:
Ich möchte einen Timer starten, der in einem eigenen Thread gewisse Aufgaben erfüllen soll. Diesen starte ich per Checkbox und möchte ihn über diese wieder deaktivieren. Er soll nach Deaktivieren jedoch genau noch 1x zu Ende laufen.
Der CheckBox habe ich einen ActionListener zugewiesen, der den Timer in einem neuen Thread startet. Dieser soll später periodisch per Socken Daten von einem Arduino holen und in eine Datenbank schreiben. Das Programm selbst merkt davon nichts, da es losgelöst in einem eigenen Thread läuft.
Java:
checkBoxTimerActive.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (checkBoxTimerActive.isSelected()==true) {
Timer timer = new Timer();
timer.schedule(new MyTimerTask(), 0,20000);
} else {
//How to stop?
}
}
});
Der Timer selbst:
Java:
import java.util.TimerTask;
public class MyTimerTask extends TimerTask {
@Override
public void run() {
// do something
}
}
Ich müsste doch eigentlich innerhalb des Timers prüfen, ob er von außen abgebrochen wurde. Wenn ja, einmal alles zu Ende bearbeiten und dann das Objekt löschen, oder? Oder wäre es hier besser, keinen Timer zu nehmen, sondern einen Thread und diesen dann zu pausieren?
VG
Steffen