所以我创建了一些代码。我使用升压计时器。这里是

      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挂起的错误报告,因此可能是您遇到了此错误---如果是这样,我将不胜感激,因为我无法自己复制它,因此我将不胜感激。

10-07 16:21
查看更多