Я пытаюсь создать программу для выполнения простой задачи и вывода результатов каждые x
секунд. Я также хочу, чтобы программа работала, пока я не решу закрыть ее вручную.
Я пытался реализовать это с помощью таймера Swing, так как считаю, что это лучший способ. Проблема в том, что я не уверен, как продолжить работу программы после завершения выполнения основного метода. Так, например, у меня есть:
static ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
try {
//do stuff
} catch (Exception e) {
e.printStackTrace();
}
}
};
public static void main(String[] args) throws Exception{
Timer timer = new Timer(3000, taskPerformer);
timer.start();
}
, который сразу же завершает выполнение. Я могу избежать этой проблемы, переведя текущий поток выполнения в спящий режим Thread.currentThread (). Sleep (..)
, но это выглядит как неудачная работа и в конечном итоге будет иметь конечную продолжительность. Я также могу сделать это (правда), но я считаю, что это плохая практика.
Мой вопрос в том, как добиться желаемого постоянства и есть ли способ лучше, чем использование таймеров Swing.
Спасибо.