【发布时间】:2020-09-09 21:06:47
【问题描述】:
我想要一个每 N 毫秒运行一次的函数,并且我希望它能够精确地运行(相对而言,我不需要原子钟精度)。
据我所知,GLib 手册说g_timeout_add() 不保证精度,并且可能由于其他事件而延迟。
有没有其他方法可以使用 GTK/GLib 获得精确的时间事件?我宁愿不使用特定于平台的代码,因为我希望我的程序能够在 Windows 和 Linux 上运行,并且尽可能减少与平台相关的代码更改。
【问题讨论】:
-
你测试过
g_timeout_add()看看它有多不精确吗?您还可以使用g_timeout_source_new()创建一个计时器源并使用g_source_set_priority()提高其优先级,这应该在主循环中相对于其他源赋予它更多的调度优先级。这应该会减少抖动。