C 没有及时发出信号

C 没有及时发出信号,c,clutter,C,Clutter,moblin杂波中的时间轴功能用于每给定毫秒进行一次回调。尽管它发出信号的速度要快得多(每1ms左右)。为什么会发生这种情况 ClutterTimeline * clutter_timeline_new(guint msecs); 您不应该使用时间线来获取已过N毫秒的通知(并执行代码)。ClutterTimeline是一个绑定到UI重画周期的对象。每当杂乱重绘一帧时,时间线都会提前,以便让应用程序代码知道它必须更新其状态 如果您只需要在一段时间后调用代码,请使用g\u timeout\u ad

moblin杂波中的时间轴功能用于每给定毫秒进行一次回调。尽管它发出信号的速度要快得多(每1ms左右)。为什么会发生这种情况

ClutterTimeline * clutter_timeline_new(guint msecs);

您不应该使用时间线来获取已过N毫秒的通知(并执行代码)。ClutterTimeline是一个绑定到UI重画周期的对象。每当杂乱重绘一帧时,时间线都会提前,以便让应用程序代码知道它必须更新其状态

如果您只需要在一段时间后调用代码,请使用
g\u timeout\u add()
;此函数仅与主循环相关联,而不与重绘循环相关联。使用超时时还需要注意其他事项,因此您应该阅读文档:


严格地说,如果您使用的是Moblin,那么您可能使用的是非常旧版本的凌乱,因此也可能存在bug;我不知道有什么bug,ClutterTimeline::new frame signal每隔毫秒调用一次。

@genpfault:我自己也在考虑删除“opengl”标记,但不确定,因为clutter是一个完全基于opengl的小部件工具包。我同意这个问题与OpenGL完全无关。这个问题困扰了我一段时间。我到处寻找解决方案。有人知道实施时间表吗?它的工作原理与API所说的完全不同。有人能帮忙吗?这是我目前正在做的项目的最后一部分。