所以我创建了一些代码。我使用 boost 定时器。在这里
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
挂起的错误报告,所以您可能遇到了这个错误 --- 如果是这样,我将不胜感激,因为我一直在无法自己复制。
关于c++ - boost boost::posix_time::milliseconds 可以将接近 0 的值变成 0 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5121398/