java timer cancle,如何继续原来的程序

evan2916 2012-10-11 01:33:36
比如说这是主文件,简单示意一下

main(){
timer t1 = new timer(10);
System.out.println("123");
}

这是计时器文件

class timer{
public timer(int seconds)//每隔seconds秒运行一次,a是调度算法选择
{
// Create local timer
localTimer = new Timer();

// Create local timer task and set the timer-parameter
localTimer.schedule(new Dispacther(p,a), 0 , seconds * 1000);
}

class Dispacther extends TimerTask{
public Dispacther(int p,int a){

}

public void run(){
localTimer.cancle();//比如在这里取消了任务,怎么再执行main中的输出123?
}

}
}


比如通过cancle取消了计时器的任务,怎么再执行main中的输出123?
小弟没还没学过线程,所以不懂,求指导,谢谢
...全文
336 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
云翳无名 2013-04-05
  • 打赏
  • 举报
回复
你设置的1000毫秒的间隔太小了,设置大点应该可以,要么就sleep一下。
猫儿爷爷 2012-10-13
  • 打赏
  • 举报
回复
Timer timer=new Timer();
timer.schedule(new TimerTask(){
public void run(){
System.out.println("我是定时器");
timer.cancel();
}
,1000}
timer.cancel();
System.out.println("123");


结果应该是
123
我是定时器
snowjlz 2012-10-13
  • 打赏
  • 举报
回复
这代码帖出来。让人一点思路没有。不知道你想干什么。
caohaiqi 2012-10-13
  • 打赏
  • 举报
回复
类名是应该大写!
evan2916 2012-10-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

提醒楼主:类名首字母大写。
main函数的System.out.println("123");语句是主线程的,肯定会执行,没学过线程还是先去学线程再考虑用jdk的多线程类库吧
[/Quote]

类名是应该大写!

嗯,我暂时用延时程序解决了这个问题。

我们马上就要开始学多线程了。
BadPattern 2012-10-11
  • 打赏
  • 举报
回复
提醒楼主:类名首字母大写。
main函数的System.out.println("123");语句是主线程的,肯定会执行,没学过线程还是先去学线程再考虑用jdk的多线程类库吧
evan2916 2012-10-11
  • 打赏
  • 举报
回复
自己顶一个

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧