我已经在 C++ 中实现了一个 WebSocket 处理程序,我需要偶尔发送一次 ping 消息。但是,我不想为每个套接字启动一个线程/一个只调用 ping 函数的全局轮询线程,而是使用一些操作系统功能来调用我的计时器函数。在 Windows 上,有 SetTimer
,但它需要一个有效的消息循环(我没有。)在 Linux 上有 timer_create
,它看起来更好。
是否有一些可移植的、低开销的方法来定期调用函数,最好是使用一些自定义上下文? IE。像 settimer (const int millisecond, const void* context, void (*callback)(const void*))
?
[编辑] 只是为了更清楚一点:我不想管理额外的线程。在 Windows 上,我想在系统线程池上使用 CreateThreadpoolTimer
可以解决问题,但我很想知道是否有更简单的解决方案以及如何将其移植到 Linux。
最佳答案
关于c++ - 在不手动创建线程的情况下定期调用 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8127602/