我必须在一定时间内运行一个循环。我知道以下方法可以做到这一点。
get start time;
while(1)
{
getcurrenttime;
if(start time + time to run >= current time)
break;
else
do what ever you want.
}
可以吗?或任何其他更好的方法来做到这一点?
我建议你在循环中引入任何“Thread.Sleep”,以防止处理器的使用和能量消耗,提高其他进程和操作系统的性能。如果你想等待一个固定时间,你可以直接使用系统线程睡眠,否则如果你想等待一个未定义的时间,你可以有一个带有退出条件的循环,如最大时间或其他条件表达式,但你必须调整等待时间与小睡眠价值观。
仅当您想燃烧 100% CPU 时才可以。否则,您应该添加一个库调用,让您的循环花费部分或大部分时间休眠,例如 nanosleep,并将延迟调整为适合您的应用程序的粒度。