功能
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
。