uv_timer_t --- 计时器句柄

计时器句柄用于调度回调函数在将来被调用。

数据类型

uv_timer_t

计时器句柄类型。

void (*uv_timer_cb)(uv_timer_t* handle)

传递给 uv_timer_start() 的回调函数的类型定义。

公共成员

N/A

参见

uv_handle_t 的成员也适用。

API

int uv_timer_init(uv_loop_t* loop, uv_timer_t* handle)

初始化句柄。

int uv_timer_start(uv_timer_t* handle, uv_timer_cb cb, uint64_t timeout, uint64_t repeat)

开启计时器。 timeoutrepeat 以微秒计。

如果 timeout 是零,回调函数在下一次事件循环迭代时运行。 如果 repeat 是非零值,回调函数首次在 timeout 毫秒后运行,之后每隔 repeat 毫秒重复运行。

注解

不要更新事件循环概念"now"。 详见 uv_update_time() 获取更多信息。

如果计时器已经活动,它简单地被更新。

int uv_timer_stop(uv_timer_t* handle)

停止计时器,回调函数将不会再被调用。

int uv_timer_again(uv_timer_t* handle)

停止计时器,并且如果它是重复的则用repeat值作为timeout重启它。 如果计时器之前从未被启用,返回 UV_EINVAL 。

void uv_timer_set_repeat(uv_timer_t* handle, uint64_t repeat)

以微秒设置重复间隔值。 计时器将以给定的间隔被调度运行, 不管回调函数的执行周期,并且在时间片超出时遵循正常计时器语义。

比方说,如果一个50ms重复的计时器首次运行于17ms, 它将在33ms之后再次运行。如果在首次回调函数之后其他的任务花费了超过33ms, 则回调函数将会尽可能快运行。

注解

如果repeat值从一个计时器回调函数里被设置,它不会立即生效。 如果计时器之前不是重复的,之前的计时将被停止。 如果它是重复的,则旧的repeat值将被用来调度下一次时限。

uint64_t uv_timer_get_repeat(const uv_timer_t* handle)

获取计时器 repeat 值。

参见

uv_handle_t 的API函数也适用。