可以检索一个油嘴'事件留下的时间吗?'

Joh*_*ter 5 c linux timer glib

我正在创建一个带有g_timeout_addg_timeout_add_seconds返回事件ID的事件; 我可以通过电话取消活动g_source_remove.

但是,在某些时候我想做的是看看在事件发生之前还剩多少时间.有没有一种简单的方法可以使用glib api执行此操作,还是需要手动存储和比较时间戳g_source_get_current_time

Hav*_*c P 3

在 GLib 中没有合理的方法可以做到这一点。

不合理的方法是获取 GSource (g_main_context_find_source_by_id),然后在 GSource 上调用 source->source_funcs->prepare() 操作,这将返回应调度源之前的时间。这有点粗略:source_funcs是私有的,并且prepare()实际上并不打算在主循环内部使用。

我只能说它会起作用。我没试过。