1. 程式人生 > >關於Qt中常用的延時方法--自我總結

關於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

大家在具體的程式設計實踐中,可以根據實際需要來決定使用哪一種程式延時方法。

以上方法也是自己的一個總結,給大家分享出來,希望對大家有所幫助。