我想用一个Timer维护一个TimerTask的数组,每一个Task有自己的触发时间,可以随时向数组中添加和删除Task.
Timer类结构如下:
class MyTimer{
Vector tasks = null; //元素为TimerTask
Timer timer = new Timer(); run(){
stop();
for (Iterator it = tasks.iterator(); it.hasNext();) {
TimerTask task = (TimerTask) it.next();
timer.schedule(task); //此处实现Task周期执行,代码简化了
}
} add(TimerTask task){
tasks.add(task);
timer.schedule(task,time); //此处实现Task周期执行,代码简化了
} remove(TimerTask task){
task.cancel();
tasks.remove(task);
} stop(){
timer.cancel();
}
}但在运行时却有以下问题,请大家帮忙解决一下:
1.执行run(),系统抛出异常:
java.lang.IllegalStateException: Task already scheduled or cancelled
2.执行remove()后,任务照常按周期执行,也就是并没有终止。
Timer类结构如下:
class MyTimer{
Vector tasks = null; //元素为TimerTask
Timer timer = new Timer(); run(){
stop();
for (Iterator it = tasks.iterator(); it.hasNext();) {
TimerTask task = (TimerTask) it.next();
timer.schedule(task); //此处实现Task周期执行,代码简化了
}
} add(TimerTask task){
tasks.add(task);
timer.schedule(task,time); //此处实现Task周期执行,代码简化了
} remove(TimerTask task){
task.cancel();
tasks.remove(task);
} stop(){
timer.cancel();
}
}但在运行时却有以下问题,请大家帮忙解决一下:
1.执行run(),系统抛出异常:
java.lang.IllegalStateException: Task already scheduled or cancelled
2.执行remove()后,任务照常按周期执行,也就是并没有终止。
解决方案 »
- 这个 JDK 程序 错了 求纠正!!!! 恳请高手们指点
- java为何没有无符号的数据类型
- 正则问题!!请教
- Java virtual Machine launcher
- java中目录文件读取问题(附有我自己写的源程序),看怎么样修改才让我显示目录文件下的所有的文件名,我自己编译过,但它总是说找不到那个文件夹,希望高手帮我解决,我因为是新进来的,没什么分,希望各位原谅.
- 一个线程的问题
- 如何将gif文件嵌入java源代码中
- 郁闷J2SE
- 新手求教关于文件读取的...
- TOMCAT一直找不到JDBC CLASS,急死我了
- 类与抽象类不懂,请看这样行不行??
- 急再线等,关于jxl操作excel表的问题
stop();
你这里stop()是什么意思?
线程停止了还怎么执行啊
你编译能通过吗?