我正在用g_timeout_add
或g_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()并不是真的打算在主循环内部使用。
最好的我可以告诉它会工作。 我没有尝试过。
保存开始时间+超时间隔,当你想知道剩下的时间时从当前时间中扣除。