我需要能够运行一段代码x秒,然后停止。就像是
while(timeElapsed < setTime){
do whatever
}
如果有人好奇,我们在这里尝试做的是让程序通过modbus轮询指示器一段时间,由用户设置。所以我有一个输入字段供用户设置时间轮询功能应该循环运行。顺便说一句,这将在覆盆子pi上完成。
一种方法是包含time.h头文件并使用difftime函数。它将被实施以检查消失的时间是否达到设定的时间。
例:
#include <time.h>
void func(float delayInSeconds) {
time_t startTime;
time_t now;
float elapsedTime;
float setTime = delayInSeconds;
time(&startTime);
while (elapsedTime < setTime) {
//do something...
now = time(NULL);
elapsedTime = difftime(now, startTime);
}
}