具有超时功能的Java Timer

时间:2013-03-25 10:32:16

标签: java timer

我正在实施一个计时器:

timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    //Do something;
                }
            },1000,1000);

但是,我希望超时,以便在100次尝试/ 10秒后,计时器自动停止。

感谢。

4 个答案:

答案 0 :(得分:3)

    final Timer timer = new Timer();
    timer.schedule(new TimerTask() {
        int n = 0;
        @Override
        public void run() {
            System.out.println(n);
            if (++n == 5) {
                timer.cancel();
            }
        }
    },1000,1000);

答案 1 :(得分:1)

您可以在run方法之外设置一个变量来保持迭代次数。在if方法中创建run()语句,以便在达到所需金额时取消计时器。每次run()方法执行时,将变量增加一。

答案 2 :(得分:0)

在上述定时器启动后立即启动另一个定时器,在10秒后取消上述定时器。检查以下代码作为快速解决方案。但最好取消task()而不是计时器。

timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    timer2.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        timer1.cancel();
                    }
            },0);
                    //Do something;
                }
            },1000,1000);

timer2 = new Timer();

答案 3 :(得分:0)

我认为我们在Timer类中没有这个Java API。您需要通过根据您的要求实现一些自定义逻辑来以编程方式执行此操作。