Qtime非阻塞延时和Sleep阻塞延时
创始人
2025-05-29 14:12:10
0

1、Qtime非阻塞延时

(1)在头文件(.h文件)声明 QTimer

public:QTimer *updateTimer;

(2)再声明一个槽函数

public slots:void updateTodo();

(3)然后再.cpp文件中的构造器里面初始化 QTimer 和 连接 槽函数
初始化 QTimer,设置延时启动定时器,软件启动后10秒加载更新程序!

updateTimer = new QTimer(this);
connect(updateTimer, SIGNAL(timeout()), this, SLOT(updateTodo()));
updateTimer->start(10000);

等到 QTimer启动指定毫秒后就会触发 timeout 信号, 接着就会调用上面 connect 的槽函数。

(4)如要关闭 QTimer,调用 stop方法即可。

void kcMain::updateTodo()
{kcUpdateThread* upt = new kcUpdateThread();connect(upt, SIGNAL(info(QString)), this, SLOT(upLoad(QString)));upt->test();updateTimer->stop();
}

2、阻塞型延时

阻塞的原理就是:在延时期间,本线程的事件循环得不到执行。
(1)QThread类的sleep()
最简单的延时方法就是使用QThread类的sleep(n)、msleep(n)、usleep(n),这几个函数的不良后果就是,GUI会在延时的时间段内失去响应,界面卡死,所以,这三个函数一般用在非GUI线程中。

QThread::msleep(50);//阻塞延时50ms

(2)使用定时器:死等

void Delay_MSec_Suspend(unsigned int msec)
{    QTime Timer = QTime::currentTime().addMSecs(msec);while( QTime::currentTime() < Timer );

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...