代码中经常需要用到延时的功能,一直以来我都是使用网上各位大神分享的方法,最近在学习Qt Installer Framework,发现了另外两种方法,并进行了比较。
一、代码分享
- 来自网上,流传至今的方法,也是我一直使用的方法。
void MainWidget::Sleep(int msec)
{
QTime dieTime = QTime::currentTime().addMSecs(msec);
while( QTime::currentTime() < dieTime )
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}
- 来自Qt Installer Framework源代码,其实跟第一种看似差不多。
void QInstaller::uiDetachedWait(int ms)
{
QTime timer;
timer.start();
do {
QCoreApplication::processEvents(QEventLoop::AllEvents, ms);
QThread::msleep(10UL);
} while (timer.elapsed() < ms);
}
- 来自Qt Installer Framework源代码,它并不是一个延时函数,但它可以实现延时,以下是我改造实现的函数,我称之为‘RealSleep’&