qt定时器

背景:

在实际中

1.我们往往需要给执行某个业务请求设置等待时间(超时时间),eg:网络请求数据包、进度条等;

2.需要定时执行每个任务,eg钟表每天定时报时,就想人每天12:00吃中午饭,大脑给身体设置的定时任务;

3.有些事情需要特定的时间执行,eg:笔者明天早上需要五点起床,赶第一班航班去某个地方,那当然起码得设置一个两点左右的闹钟,不至于误机;

这些看起来简单的事情其实映射到程序世界来都需要定时看护,那定时器,是一个不错的选择;

#include "mainwindow.h"

#include <QDebug>
#include <QDateTime>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    timer.setSingleShot(true);
    qInfo() << QDateTime::currentDateTime().toString() << timer.isActive();
    connect(&timer, &QTimer::timeout, [=](){
        qInfo() << QDateTime::currentDateTime().toString() << timer.isActive();
        timer.start();
        if (timer.isActive())
            timer.stop();

        timer.start(2000);
    });
    timer.start(5000);
}

MainWindow::~MainWindow()
{

}

QTimer可以设置只启动一次(setSingleShot是一个不错的选择)【eg:https进行post请求访问数据时可以设置一个8s的定时器,如果一旦超时,然后就加载本地数据;】

如果需要定时定点执行某个任务那就不需要该方法了;

另外如果定时器运行期间需要改变定时器的超时间隔setInterval是一个不错的选择;

具体方法很多,可以参考qt 帮助手册;

这里提醒的是,虽然使用简单,但是在使用前一定要想好,充分模拟让定时器触发的场景,考虑全面,如果存在漏洞,某些业务可能执行不到或者一直执行,这对整个程序是致命的,谁失误过谁明白;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值