Сохранение таймера поворота после завершения основного метода

Я пытаюсь создать программу для выполнения простой задачи и вывода результатов каждые 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.

Спасибо.

5
задан Wozza 3 October 2011 в 22:15
поделиться