我在一段时间内(1)有一个for循环,我希望循环在整个循环周期中平均大约2分钟。这需要基于迭代的执行时间和我的2分钟拍摄时钟中剩余的时间在每次迭代之间休眠不同的时间。任何想法。
我正朝着某个方向前进
while(true)
{
unsigned long begin_loop = OCX::micro_stamp();
for (int i = 0; i < _vector.size(); i++)
{
unsigned long start = OCX::micro_stamp();
unsigned long avg = ( ( begin_loop - start) / ( i + 1 ) );
usleep ( ( 120000000 - ( (_vector.size() - i) * avg ) ) / ( _vector.size() - i ) );
try
{
}
catch {
}
}
}
答案 0 :(得分:0)
在每次迭代结束时,睡眠((120 - 总经过时间)/(vector.size() - i))
答案 1 :(得分:0)
在每次迭代结束时,请暂停
((120000000 - total elapsed microseconds) / (vector.size() - i))