少有人走的路

勇哥的工业自动化技术网站

Qt 非阻塞和阻塞延时

一般情况下,延时大概分为两类,一个是非阻塞延时,一个是阻塞延时,但从名称上应该都可以看出来具体的含义,下面针对这两类延时方法,做一个具体的说明和代码实现:
一、关于Qt实现非阻塞延时的方法:

void QSleepTimeSet::Delay_MSec(unsigned int msec)
{
    QTime _Timer = QTime::currentTime().addMSecs(msec);
    while( QTime::currentTime() < _Timer )
    QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}

其中的msec为需要延时的毫秒数,例如,你要实现5秒延时,则msec的值就是 :5000

 

 二、关于Qt中的阻塞延时实现方法:

void QSleepTimeSet::Delay_MSec_Suspend(unsigned int msec)
{
    QTime _Timer = QTime::currentTime();
    QTime _NowTimer;
    do{
              _NowTimer=QTime::currentTime();
    }while (_Timer.msecsTo(_NowTimer)<=msec);
}

其中的msec为需要延时的毫秒数,例如,你要实现5秒延时,则msec的值就是 :5000


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864