标题:Timer线程
只看楼主
jingmo
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-11-14
结帖率:100%
已结贴  问题点数:10 回复次数:2 
Timer线程
请求大神帮我解答,我想让计算器启动后Timer线程自动结束,可是在不关闭计算器时timer不结束?
import
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 
2013-11-14 18:03
husiwen
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:227
专家分:1125
注 册:2010-5-23
得分:10 
你的t.cancel 跟在exec后面  当然要 exec结束了 才会执行到
2013-11-15 19:13
jingmo
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-11-14
得分:0 
貌似我知道为什么了,我通过在命令行窗口运行程序,当调用cancle()的情况下程序在启动计算器后线程会结束,不调用时不会结束,我在eclipse下运行该程序,忽略了控制台下一直运行的是计算器,当计算器不结束,控制台也不会结束,我错以为程序也没结束,其实程序已经结束了
2013-11-16 10:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-423520-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.606774 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved