Как многократно вызывать функцию через определенное время

Я хочу создать функцию, которая будет вызываться через определенное время. Кроме того, это должно повторяться через такое же количество времени. Например, функция может вызываться каждые 60 секунд.

java,

6

Ответов: 3


10

Использование java.util.Timer.scheduleAtFixedRate()и java.util.TimerTaskявляется возможным решением:

Timer t = new Timer();

t.scheduleAtFixedRate(
    new TimerTask()
    {
        public void run()
        {
            System.out.println("hello");
        }
    },
    0,      // run first occurrence immediatetly
    2000)); // run every two seconds

Чтобы неоднократно вызывать метод, вам нужно использовать некоторую форму потоковой передачи, которая выполняется в фоновом режиме. Я рекомендую использовать ScheduledThreadPoolExecutor :

ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new Runnable() {
           public void run() {
                // code to execute repeatedly
           }
       }, 0, 60, TimeUnit.SECONDS); // execute every 60 seconds

0

Swing Timer также является хорошей идеей многократно повторять вызовы функций.

Timer t = new Timer(0, null);

t.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
          //do something
    }
});

t.setRepeats(true);
t.setDelay(1000); //1 sec
t.start(); 
Ява,
Похожие вопросы