5

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

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

4

2 回答 2

3

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

不合理的方法是获取 GSource (g_main_context_find_source_by_id),然后在 GSource 上调用 source->source_funcs->prepare() 操作,这将返回直到应该分派源的时间。这有点粗略: source_funcs 是私有的,而 prepare() 并不是真正打算在主循环内部使用的。

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

于 2010-10-28T02:50:54.467 回答
2

保存开始时间+超时间隔,当您想知道剩余时间时从当前时间减去。

于 2011-04-01T00:18:50.663 回答