功能
GLibtimeout_add_full
声明 [src]
guint
g_timeout_add_full (
gint priority,
guint interval,
GSourceFunc function,
gpointer data,
GDestroyNotify notify
)
说明 [src]
设置一个按照给定的优先级定期调用的函数。该函数将被重复调用直至其返回 FALSE,在该时间点,超时将自动停止且该函数不会再次被调用。该 notify 函数将在超时停止时被调用。对该函数的首次调用将在第一个 interval 的末尾。
注意,由于处理其他事件源,超时函数可能会延迟。因此,不应依赖于它们实现精确的时间控制。在对超时函数的每次调用后,下一个超时的发生时间基于当前时间和给定的间隔重新计算(它不会尝试“追赶”在延迟期间内损失的时间)。
有关如何处理 data 的返回值和内存管理的详情,请参阅 主线程内存管理。
该功能在内部使用 g_timeout_source_new() 创建一个主线程源,并利用 g_source_attach() 将其附加到全局 GMainContext,所以该回调将在运行该主线程的任何线程中被调用。如果您需要更大的控制或使用自定义主线程,则可以手动完成这些步骤。
给定的时间间隔是单调时间,而不是时钟时间。请参阅 g_get_monotonic_time()。
该函数在语言绑定中被重命名为 g_timeout_add()。
参数
priority-
类型:
gint超时源的优先级。这通常介于
G_PRIORITY_DEFAULT与G_PRIORITY_HIGH之间。 interval-
类型:
guint对该函数的每次调用的毫秒数间隔(以千分之一秒为单位)。
function-
类型:
GSourceFunc要调用的函数。
data-
类型:
gpointer要传递给
function的数据。该参数可以为 NULL。数据归函数的调用者所有。 notify-
类型:
GDestroyNotify在超时被移除时要调用的函数,或
NULL。该参数可以为 NULL。