new Timer().schedule(new TimerTask(){
        public void run(){
                RunTime.getRuntime().exec("calc.exe");
                this.cancel();//我想问是问题在这里。
        }        
}
为什么我调用的TimerTask()方法不能取消其线程?

解决方案 »

  1.   

    public static void main(String[] args) throws InterruptedException {
    Timer timer = new Timer();
    MyTask mt = new MyTask("D:\\std1.txt");
    timer.schedule(mt, 1000, 10000);// 在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.
    while (true) {// 这个是用来停止此任务的,否则就一直循环执行此任务了
    System.out.println("正在运行...") ;
    Thread.sleep(500) ;
    if (mt.isFinish()) {
    timer.cancel();// 使用这个方法退出任务
    System.out.println("完成.");
    break ;
    }
    }
    }
      

  2.   

    把问题说清楚一点,TimerTask是个类啊
      

  3.   


    对,我搞错了,是用TimerTask调用cancel(),但是不知道为什么不能取消其线程,