当前位置: 代码迷 >> Java相关 >> Timer线程
  详细解决方案

Timer线程

热度:689   发布时间:2013-11-14 18:03:41.0
Timer线程
请求大神帮我解答,我想让计算器启动后Timer线程自动结束,可是在不关闭计算器时timer不结束?
import java.io.IOException;
import java.util.Timer;
import java.util.TimerTask;


public class TestTimer {

    class MyTimerTask extends TimerTask {
        private Timer t ;
        public MyTimerTask(Timer t) {
            this.t = t;
        }
        public void run() {
            try {
                //启动计算器程序
                Runtime.getRuntime().exec("calc.exe");
            } catch (IOException e) {
                e.printStackTrace();
            }
            //结束线程
            t.cancel();
        }
    }
    public static void main(String[] args) {
        TestTimer tt = new TestTimer();
        Timer t = new Timer();
        //2秒后执行Timertask
        t.schedule(tt.new MyTimerTask(t), 2000);
    }

}
搜索更多相关的解决方案: 计算器  private  public  import  

----------------解决方案--------------------------------------------------------
你的t.cancel 跟在exec后面  当然要 exec结束了 才会执行到
----------------解决方案--------------------------------------------------------
貌似我知道为什么了,我通过在命令行窗口运行程序,当调用cancle()的情况下程序在启动计算器后线程会结束,不调用时不会结束,我在eclipse下运行该程序,忽略了控制台下一直运行的是计算器,当计算器不结束,控制台也不会结束,我错以为程序也没结束,其实程序已经结束了
----------------解决方案--------------------------------------------------------
  相关解决方案