HeJ小鼠!
我正在寻找一种在C ++项目中定期调度任务的可移植方式。在这个特定的项目中应该避免使用诸如boost之类的库。
分辨率要求不太严重:平均上网本在5Hz到20Hz之间。
该项目使用OpenGL渲染HMI,但由于我正在处理后端部分,所以我对它不太熟悉。
感谢您的任何建议或意见, ·阿尔
编辑:我们的'Task'类实际上做的是使用Windows的CreateThread(..)或linux的pthread_create(..)创建一个线程。
答案 0 :(得分:1)
由于您已经了解完整的目标系统集,因此可以采用SQLite方式。他们有完全相同的问题 - 他们使用的很多东西都是系统依赖的。
所有依赖于系统的事物都是针对每个目标系统单独实现的,并且根据预处理器指令集编译正确的版本。
答案 1 :(得分:1)
如果你想要一个周期性的触发器,一个在循环中休眠100ms的线程可能会有效。
答案 2 :(得分:1)
最简单的方法是在一个周期内使用Sleep(100ms),所需要的只是便携式睡眠。对于Linux,它可以实现如下
void Sleep(unsigned long ulMilliseconds)
{
struct timeval timeout;
timeout.tv_sec = 0;
timeout.tv_usec = ulMilliseconds * 1000;
select(1, NULL, NULL, NULL, &timeout);
}
答案 3 :(得分:0)