關於Qt中常用的延時方法--自我總結
阿新 • • 發佈:2019-02-15
相關文章
一般情況下,延時大概分為兩類,一個是非阻塞延時,一個是阻塞延時,但從名稱上應該都可以看出來具體的含義,下面針對這兩類延時方法,做一個具體的說明和程式碼實現:
一、關於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
大家在具體的程式設計實踐中,可以根據實際需要來決定使用哪一種程式延時方法。
以上方法也是自己的一個總結,給大家分享出來,希望對大家有所幫助。