gpt4 book ai didi

c++ - 周期约 100 毫秒的可移植周期性定时器

转载 作者:搜寻专家 更新时间:2023-10-31 02:01:05 26 4
gpt4 key购买 nike

嘿!

我正在寻找一种在 C++ 项目中定期分派(dispatch)任务的可移植方式。在此特定项目中应避免使用 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);
}

关于c++ - 周期约 100 毫秒的可移植周期性定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1118428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com