Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要在执行时修改 GLib 的超时间隔。那可能吗?我查看了源代码,对我来说似乎可行,但需要使用 GLib 内部的一些非公共函数。我应该重新实现 GTimeoutSource 还是有办法做到这一点?
在您的超时函数中,您可以使用新的超时间隔重新添加该函数,然后返回FALSE以删除旧间隔的超时:
FALSE
gboolean my_timeout_function(gpointer data) { // do stuff // ... if(need_to_change_interval) { g_timeout_add(new_interval, (GSourceFunc)my_timeout_function, data); return FALSE; } return TRUE; }