我需要在 GLib 执行时修改它的超时间隔。那可能吗?我查看了源代码,这对我来说似乎是可行的,但需要使用 GLib 内部的一些非公共(public)函数。我应该重新实现 GTimeoutSource 还是有办法实现?
最佳答案
在您的超时函数中,您可以重新添加具有新超时间隔的函数,然后返回 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;
}
关于c - GLib 中的可变超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2948538/