问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java定时器的问题,在一个新的线程中使用

发布网友 发布时间:2022-04-29 16:53

我来回答

3个回答

热心网友 时间:2023-10-20 19:45

 
 
 
相信你的意思是 runnable 为何只执行一次而不是周期性地执行。

你看看 timerExec 方法的文档:
public void timerExec(int milliseconds, Runnable runnable)
Causes the run() method of the runnable to be invoked by the user-interface thread after the specified number of milliseconds have elapsed.

没说是周期性地执行 runnable。

你要周期性执行的话,最直接的方法是在你的 runnable 的 run 方法尾部调用 timerExec。比如:

import org.eclipse.swt.widgets.*;

class C {
    public static void main(String[] args) {
        final Display display = new Display();
        final Shell shell = new Shell(display);

        final int 周期 = 1000;
        display.timerExec(周期, new Runnable() {
            public void run() {
                shell.setText("" + new java.util.Date());
                display.timerExec(周期, this);
            }
        });

        shell.open();
        while ( ! shell.isDisposed())
            if ( ! display.readAndDispatch())
                display.sleep();
        display.dispose();
    }
}
 
 
 

参考资料:http://www.java2s.com/Tutorial/Java/0280__SWT/Createonerepeatingtimer.htm

热心网友 时间:2023-10-20 19:46

让控制时间的线程在while循环里睡眠1000ms

参考资料:http://hi.baidu.com/payton_lau/blog/item/66ee0e0011e001087bec2c8a.html

热心网友 时间:2023-10-20 19:45

 
 
 
相信你的意思是 runnable 为何只执行一次而不是周期性地执行。

你看看 timerExec 方法的文档:
public void timerExec(int milliseconds, Runnable runnable)
Causes the run() method of the runnable to be invoked by the user-interface thread after the specified number of milliseconds have elapsed.

没说是周期性地执行 runnable。

你要周期性执行的话,最直接的方法是在你的 runnable 的 run 方法尾部调用 timerExec。比如:

import org.eclipse.swt.widgets.*;

class C {
    public static void main(String[] args) {
        final Display display = new Display();
        final Shell shell = new Shell(display);

        final int 周期 = 1000;
        display.timerExec(周期, new Runnable() {
            public void run() {
                shell.setText("" + new java.util.Date());
                display.timerExec(周期, this);
            }
        });

        shell.open();
        while ( ! shell.isDisposed())
            if ( ! display.readAndDispatch())
                display.sleep();
        display.dispose();
    }
}
 
 
 

参考资料:http://www.java2s.com/Tutorial/Java/0280__SWT/Createonerepeatingtimer.htm

热心网友 时间:2023-10-20 19:46

让控制时间的线程在while循环里睡眠1000ms

参考资料:http://hi.baidu.com/payton_lau/blog/item/66ee0e0011e001087bec2c8a.html

热心网友 时间:2023-10-20 19:46

windows系统不可能那么精确,应该会1000多一点,累积起来就差的越来月多了,可以用quartz来定时。

热心网友 时间:2023-10-20 19:45

 
 
 
相信你的意思是 runnable 为何只执行一次而不是周期性地执行。

你看看 timerExec 方法的文档:
public void timerExec(int milliseconds, Runnable runnable)
Causes the run() method of the runnable to be invoked by the user-interface thread after the specified number of milliseconds have elapsed.

没说是周期性地执行 runnable。

你要周期性执行的话,最直接的方法是在你的 runnable 的 run 方法尾部调用 timerExec。比如:

import org.eclipse.swt.widgets.*;

class C {
    public static void main(String[] args) {
        final Display display = new Display();
        final Shell shell = new Shell(display);

        final int 周期 = 1000;
        display.timerExec(周期, new Runnable() {
            public void run() {
                shell.setText("" + new java.util.Date());
                display.timerExec(周期, this);
            }
        });

        shell.open();
        while ( ! shell.isDisposed())
            if ( ! display.readAndDispatch())
                display.sleep();
        display.dispose();
    }
}
 
 
 

参考资料:http://www.java2s.com/Tutorial/Java/0280__SWT/Createonerepeatingtimer.htm

热心网友 时间:2023-10-20 19:46

windows系统不可能那么精确,应该会1000多一点,累积起来就差的越来月多了,可以用quartz来定时。

热心网友 时间:2023-10-20 19:46

让控制时间的线程在while循环里睡眠1000ms

参考资料:http://hi.baidu.com/payton_lau/blog/item/66ee0e0011e001087bec2c8a.html

热心网友 时间:2023-10-20 19:46

windows系统不可能那么精确,应该会1000多一点,累积起来就差的越来月多了,可以用quartz来定时。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
邪灯是什么意思? 趣头条怎么解绑微信 趣头条APP解绑微信教程 趣头条怎么解绑微信号 趣头条怎样解除微信绑定 魔兽世界7.0古龙之陨怎么做 咸阳男子欲带孩子轻生被救回,成年人的生活有多不易? 陕西咸阳,一男子欲带孩子轻生被救回,轻生带孩子是什么操作? 我是帅哥,为什么还没有人追? 为什么我这么漂亮就是没有一个男人来追我 气死了? 人不在本地,怎么实名制 咸雍通宝合背折十白铜价格咸雍通宝合背折十大钱白铜 c#中多线程和定时器的使用 向上金服 没有在计划结束前取消续投 python多线程和定时器的区别 过年期间向上金服为什么登不上? C#如何在BackgroundWorker 后台线程中使用定时器? mfc 线程里设置定时器settimer,但是执行不道OnTimer里 关于Qt在新线程中创建定时器的问题 内核线程,软中断和定时器有何区别 有个向上金服活动,是怎么样的? 向上金服的APP好用吗? C#中多线程和定时器是不是有冲突? 有没有 关于c++ 多线程 定时器 相关讲解的 请教一个Winform 中 C# 线程定时器的问题 向上金服的app可以使用红包吗? ios中定时器和线程的区别 java线程中定时器 mfc线程和定时器有什么区别? 怎样把QQ群里的好友导入到微信通讯录? c# 怎么在线程里面启动定时器 咸雍通宝是那个时期的钱币。 咸贾通宝是哪个朝代的钱币 很早之前,有一个不同歌词的《世间美好与你环环相扣》,谁知道吗? 世间美好,与你环环相扣——朗逸,总有种岁月静好的感觉 求世间美好与你环环相扣的串词? 格尔腾唱的 世间美好与你环环相扣? 世间美好与你环环相扣,我的爱车睿骋CC 瑞典是英语国家吗? 一般车辆定损要多久 世间美好与你环环相扣粤语版叫什么名字? 保险查堪后定损怎么那么慢 车辆定损迟迟不下来我该怎么办 哪些货币是世界流通货币 世界是共有多秒种币种 为什么微信没有自已的头象 易志愿学校报志愿靠谱么 快手广告投放买家在落地页交易好还是在淘宝店交易好? 未成年人网络保护问题备受关注!短视频时代如何加强未成年人个人信息保护? 海尔摄像头买了好几年了,没有二维码,也不知道型号了,怎么安装? 建设美丽中国人人有责,作为青少年我们应该怎么做? 谁有思路呀?