可能检索留在一个滑冰事件的时间?

我正在用g_timeout_addg_timeout_add_seconds创build一个返回事件ID的事件; 我可以通过调用g_source_remove来取消事件。

然而,在某个时候,我想要做的是看看在事件发生之前剩下多less时间。 有没有简单的方法来做到这一点与glib api,或者我需要手动存储和比较时间戳与g_source_get_current_time

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

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

最好的我可以告诉它会工作。 我没有尝试过。

保存开始时间+超时间隔,当你想知道剩下的时间时从当前时间中扣除。