找回密码
 立即注册
收起左侧

qt能每隔3个小时自动执行一次吗

5
回复
8913
查看
[复制链接]
累计签到:67 天
连续签到:1 天
来源: 2014-11-2 20:46:36 显示全部楼层 |阅读模式
8Qter豆
需要每隔3小时就获取新来的数据,在qtcreator开发环境,可以实现每隔3个小时,qt就自动运行一次吗?

最佳答案

查看完整内容

如果是带界面的 把那段代码放到线程中的run里面执行,就不会导致界面卡死。 还有就是msleep这三小时,建议这样写。 你可以写个这样的程序 隔3小时去读数据 void Thread::run() { isQuitThread = false; while(!isQuitThread) { readData();//取新数据 for(int i=0;i
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2014-11-2 20:46:37 显示全部楼层
xuezhen1988 发表于 2014-11-4 09:28
感觉不错额    值得试试呦  嘿嘿

如果是带界面的
把那段代码放到线程中的run里面执行,就不会导致界面卡死。
还有就是msleep这三小时,建议这样写。


你可以写个这样的程序  隔3小时去读数据
void Thread::run()
{
    isQuitThread = false;
    while(!isQuitThread)
    {
        readData();//取新数据
        for(int i=0;i<3*60*60*10;i++)//这样写的好处是要退出线程时,调用quitThread之后就立即退了
        {
            if(isQuitThread)
                break;
            msleep(100);
        }
    }
}
void Thread::quitThread()
{
    isQuitThread = true;
}
回复

使用道具 举报

尚未签到

2014-11-2 22:28:43 显示全部楼层
这就是系统的问题了,不是qt自己的问题。

当然如果qt程序一直运行的话,用timer也能搞定
回复

使用道具 举报

累计签到:410 天
连续签到:1 天
2014-11-3 13:12:19 显示全部楼层
你可以写个这样的程序  隔3小时去读数据
void Thread::run()
{
    while(!isQuitThread)
    {
        readData();//取新数据
        msleep(3*60*60*1000);//休眠3小时
    }
}
回复

使用道具 举报

累计签到:67 天
连续签到:1 天
2014-11-4 09:27:31 显示全部楼层
Joey_Chan 发表于 2014-11-2 22:28
这就是系统的问题了,不是qt自己的问题。

当然如果qt程序一直运行的话,用timer也能搞定 ...

嗯  好用呢  它与painterEVent相比,QTimer优先级高些吧,我在不同的工程里验证,一个验证是QPaintEvent一直在执行 ,一直在画,可是另一个工程验证是只执行一次,但画面一直有
回复

使用道具 举报

累计签到:67 天
连续签到:1 天
2014-11-4 09:28:29 显示全部楼层
a408815041 发表于 2014-11-3 13:12
你可以写个这样的程序  隔3小时去读数据
void Thread::run()
{

感觉不错额    值得试试呦  嘿嘿
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了