标题:Java的Timer中,如何取消多个定时任务
只看楼主
taotesea
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2009-3-16
结帖率:0
已结贴  问题点数:10 回复次数:3 
Java的Timer中,如何取消多个定时任务
例如:
for(int i = 0; i < 100; i++) {
 timer.schedule(new TimerTask() {  
   ......
 }
}
请问各位大侠,我该如何取消这100个计划时再重新在添加100个定时任务,谢谢了:)
搜索更多相关主题的帖子: Timer 取消 多个 定时 任务 
2017-11-27 13:16
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:4 
抛个异常捕获吧,虽然有点偏门。

剑栈风樯各苦辛,别时冰雪到时春
2017-11-27 22:50
zhizai
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2017-11-29
得分:4 
我感觉, 你可以在循环外面设定一个标记,例如:boolean it=true; 然后在做一个判断if(it){Timer....}, 如果想取消这个循环,那就让it=false,就可以了
2017-11-29 10:28
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
得分:4 
private static volatile boolean cancel = false;
执行前判断下
@Override
public void run() {
    if (cancel) {
        this.cancel();
        return;
    }
    ....
}
如果想一个个单独取消,可以吧TimerTask放到Map中,用过指定的key找到并cancel,比如:
private static final Map<String, TimerTask> TIME_TASKS = new HashMap<>(100);
2017-12-02 10:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-482866-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.250344 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved