在Java 1.4中动态更改计时器间隔



我有一个计时器任务,如下所示:

long timerSec = 5000;
TimerTask task1 = new TimerTask()
{   
    public void run()
    {
        //Some code...
        System.out.println("Timer task...");
    }
};

和计时器对象,如下所示:

Timer readFileTimer = new Timer();

我安排了一个任务,在两个连续的任务执行之间有5秒的间隔。

readFileTimer.scheduleAtFixedRate(task1, 0, timerSec);

下面的代码行分配新的时间段。我想将时间周期从5秒更改为n秒(假设10秒w.r.t. timerSec值)。

timerSec = CalculateTimeForUpgrade(); //Get new timer interval period.

我尝试了下面的代码,但没有得到预期的结果。

readFileTimer.scheduleAtFixedRate(task1, 0, timerSec);

请帮助。

每次完成任务后重新安排任务,而不是从一开始就以固定的间隔开始任务。像这样:

    final Timer readFileTimer = new Timer();
    readFileTimer.schedule(new MyTimerTask(), 0);
    .......
    private class MyTimerTask extends TimerTask() {
        @Override
        public void run() {
            // Some code...
            System.out.println("Timer task...");
            if (readFileTimer!=null)
                readFileTimer.schedule(new MyTimerTask(), CalculateTimeForUpgrade());
        }
    }

相关内容

  • 没有找到相关文章

最新更新