繁体   English   中英

每个间隔执行一次任务

[英]Perform a task each interval

因此,我试图安排一个时间实例,该实例每10秒重复一次。 现在,我有东西可以在10秒后执行任务,但是我该如何做才能使它在完成后重置。

this.schedule = TimerManager.getInstance().schedule(new Runnable() {
        @Override
        public void run() {
            chrs.get(0).getMap().spawnMonsterOnGroudBelow(MapleLifeFactory.getMonster(100100), chrs.get(0).getPosition());
        }

    }, time);

}

时间等于10000毫秒,因此等于10秒。

您可以改用scheduleAtFixedRate方法。

查看此问题在Java中创建重复计时器提醒

1)创建ScheduledExecutorService

ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();

2)创建并安排您的Runnable:

Runnable task = new Runnable() {
    @Override
    public void run() {
        System.out.println("Done:" + new Date(System.currentTimeMillis()));
        // some long task can be here
        executor.schedule(this, 10, TimeUnit.SECONDS);
    }
};
//can be 0 if you want to run it fist time without 10 sec delay
executor.schedule(task, 10, TimeUnit.SECONDS); 

如果您不关心可运行的持续时间,并且总是想每10秒触发一次事件

executor.scheduleAtFixedRate(new Runnable() {
    @Override
    public void run() {
        System.out.println("Done:" + new Date(System.currentTimeMillis()));
    }
}, /* same, can be 0*/ 10 , 10, TimeUnit.SECONDS);

3)退出程序时使用

executor.shutdown();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM