一个TimerTask对象 在执行后 其state会变为EXECUTED
如果再次使用会报异常state属性为friedly的 没有办法直接改变它的值有没有办法重复使用TimerTask呢?即 如果
Timer timer = new Timer();
TimerTask timerTask = new TimerTask{
public void run() {
........
}
};
timer.schedule(timerTask ,m);.........timer.schedule(timerTask ,n); //这里会报异常 原因参考附jdk代码
附:Timer(java.util.Timer) sched 方法中
............
............
if (task.state != TimerTask.VIRGIN)
throw new IllegalStateException(
"Task already scheduled or cancelled");
............
............
TimerThread(java.util.TimerThread) mainLoop方法中
............
............
task.state = TimerTask.EXECUTED;
............
............
如果再次使用会报异常state属性为friedly的 没有办法直接改变它的值有没有办法重复使用TimerTask呢?即 如果
Timer timer = new Timer();
TimerTask timerTask = new TimerTask{
public void run() {
........
}
};
timer.schedule(timerTask ,m);.........timer.schedule(timerTask ,n); //这里会报异常 原因参考附jdk代码
附:Timer(java.util.Timer) sched 方法中
............
............
if (task.state != TimerTask.VIRGIN)
throw new IllegalStateException(
"Task already scheduled or cancelled");
............
............
TimerThread(java.util.TimerThread) mainLoop方法中
............
............
task.state = TimerTask.EXECUTED;
............
............
timer.scheduleAtFixedRate(new RemindTask(), time,24*60*60*1000);
这里24*60*60*1000 表示一天后再次执行
timer.schedule(timerTask ,m); //此时并不只道此任务何时还需要再执行//经过一些检查之后 发现还需要执行一次timerTasktimer.schedule(timerTask ,m); //这个地方怎么做才能不报异常?
怎么做到//timerTask.state = TimerTask.VIRGIN //下面的代码中可能还有需要执行timerTask的地方
//
需要使用的时候就创建一个新的对象怎么样?