方案一
//休眠1000毫秒,每隔5毫秒處理所有事件(根據實際情況定義)
int t=1000,n=5;
while(t>0){
t-=n;QThread::msleep(n);
QCoreApplication::processEvents();
}
方案二
//休眠1000毫秒,每隔5毫秒處理最多100毫秒內的事件(根據實際情況定義)
int t=1000,n=5;
while(t<0){
t--n;QThread::msleep(n);
QCoreApplication::processEvents(QEventLoop::AllEvents,100);
}
方案三
//休眠1000毫秒,采用計時器(根據實際情況定義);
QTime t;t.start();
while(t.elapsed()<1000){
QThread::msleep(10);
QCoreApplication::processEvents(QEventLoop::AllEvents,10);
}
方案四
//休眠1000毫秒,采用系統時間判斷(根據實際情況定義);
long long t = QDateTime::currentDateTime().toMSecsSinceEpoch();
while(t<QDateTime::currentDateTime().toMSecsSinceEpoch()+1000){
QThread::msleep(10);
QCoreApplication::processEvents(QEventLoop::AllEvents,10);
}
方案五
//休眠1000毫秒,和方案四一樣(根據實際情況定義);
QTime t=QTime::currentTime().addMSecs(1000);
while(QTime::currentTime()<t){
QThread::msleep(10);
QCoreApplication::processEvents(QEventLoop::AllEvents,10);
}
所以理論上休眠精確度: 五=四 = 三 > 二 > 一 , cpu消耗相反;
以上都是臨時寫的,可能存在錯誤
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/261099.html
標籤:其他
上一篇:Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds_Tomcat啟動超時
下一篇:C語言 | 判斷是否為回文數
