所以我创建了一些代码。我使用升压计时器。这里是
while(1){
timerForCaptureFame.restart();
//some code
spendedTimeForCaptureFame = timerForCaptureFame.elapsed();
if(spendedTimeForCaptureFame < desiredTimeForCaptureFame){
boost::this_thread::sleep(boost::posix_time::milliseconds(desiredTimeForCaptureFame - spendedTimeForCaptureFame));
}
}
会发生这样的情况,以致
desiredTimeForCaptureFame - spendedTimeForCaptureFame
会> 0,但是boost会将其设为0并只是暂停线程? 最佳答案
boost::this_thread::sleep(0)
不应“暂停线程”;它应该立即返回。已经发布了有关boost::this_thread::sleep
挂起的错误报告,因此可能是您遇到了此错误---如果是这样,我将不胜感激,因为我无法自己复制它,因此我将不胜感激。