喂!

我正在寻找一种可移植的方式来定期分派(dispatch)C++项目中的任务。在此特定项目中,应避免使用诸如boost之类的库。

分辨率要求不是太严格:平均上网本在5Hz到20Hz之间。

该项目使用OpenGL渲染HMI,但是由于我在后端部分上工作,所以我不太熟悉它。

感谢您的任何意见或建议,
阿恩

编辑:我们的“任务”类实际上所做的是使用Windows的CreateThread(..)或Linux的pthread_create(..)创建线程。

最佳答案

由于最简单的方法是在一个周期内使用Sleep(100ms),因此您需要的只是便携式Sleep。对于Linux,可以如下实现

void Sleep(unsigned long ulMilliseconds)
{
    struct timeval timeout;
    timeout.tv_sec = 0;
    timeout.tv_usec = ulMilliseconds * 1000;
    select(1, NULL, NULL, NULL, &timeout);
}

07-24 09:45
查看更多