Java:继续执行if语句

时间:2013-07-24 14:01:35

标签: java if-statement time execution

我有一个if语句,用于评估自程序开始运行以来的时间,如果时间超过某个阈值,则执行某些操作。我希望在程序运行的整个过程中检查if语句,同时让程序继续执行。我该怎么做呢?

谢谢。

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用Timer。有了它,你不需要if逻辑;您可以在安排TimerTask时使用firstTime参数。

Timer timer = new Timer();
TimerTask task = new TimerTask() {
    @Override
    public void run() {
        // do something
    }
};
// schedule the task to be run every 100ms (0.1 sec),
// starting after "threshold" milliseconds have past
timer.schedule(task, threshold, 100);

从您的描述中不清楚,如果您想要在超过时间阈值后反复“做某事”,或者您只是想等到某个时间过去然后“做某事”一次。以上代码适用于重复案例。对于将来某一次发生的事件,请将最后一行更改为:

timer.schedule(task, threshold);

如果您正在使用Swing,则应使用Swing Timer而不是java.util.Timer。有关详细信息,请参阅How to Use Swing Timers

编辑:您的评论澄清了一些事情。做你所描述的很容易:

Timer timer = new Timer();
TimerTask task = new TimerTask() {
    private final long start = System.currentTimeMillis();
    @Override
    public void run() {
        if (System.currentTimeMillis() - start < threshold) {
            // do something
        } else {
            // do something else
        }
    }
};
// schedule the task to be run every 100ms (0.1 sec), starting immediately
timer.schedule(task, 0, 100);

请注意,“执行某些操作”和“执行其他操作”可以是对封闭类的方法调用。

更简洁的方法可能是定义几个计划在不同时间执行的TimerTask。触发异常的“其他”任务可以安排在阈值时间执行一次。您还可以取消单个任务,甚至可以安排取消其他任务的任务。