# idle_t

# 概述

idle可以看作是duration为0的定时器。

idle可以用来实现一些异步处理。

示例:

static ret_t something_on_idle(const idle_info_t* info) {
widget_t* widget = WIDGET(info->ctx);
edit_t* edit = EDIT(widget);
...
return RET_REMOVE;
}

...

idle_add(something_on_idle, edit);

在非GUI线程请用idle_queue。

# 函数

函数名称 说明
idle_add 增加一个idle。
idle_count 返回idle的个数。
idle_dispatch 调用全部idle的函数。
idle_exist idle是否存在。
idle_find 查找指定ID的idle。
idle_queue 用于非GUI线程增加一个idle,本函数向主循环的事件队列中发送一个增加idle的请求。
idle_queue_ex 用于非GUI线程增加一个idle,本函数向主循环的事件队列中发送一个增加idle的请求。
idle_remove 删除指定的idle。
idle_remove_all_by_ctx 根据上下文删除所有对应的idle。
idle_set_on_destroy 设置一个回调函数,在idle被销毁时调用(方便脚本语言去释放回调函数)。

# idle_add 函数

  • 函数功能:

增加一个idle。

  • 函数原型:
uint32_t idle_add (idle_func_t on_idle, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回idle的ID,0表示失败。
on_idle idle_func_t idle回调函数,回调函数返回RET_REPEAT,则下次继续执行,否则自动移出。
ctx void* idle回调函数的上下文。

# idle_count 函数

  • 函数功能:

返回idle的个数。

  • 函数原型:
uint32_t idle_count ();
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回idle的个数。

# idle_dispatch 函数

  • 函数功能:

调用全部idle的函数。

  • 函数原型:
ret_t idle_dispatch ();
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。

# idle_exist 函数

  • 函数功能:

idle是否存在。

  • 函数原型:
bool_t idle_exist (idle_func_t on_idle, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示存在,否则表示不存在。
on_idle idle_func_t idle回调函数。
ctx void* idle回调函数的上下文。

# idle_find 函数

  • 函数功能:

查找指定ID的idle。

  • 函数原型:
const idle_info_t* idle_find (uint32_t idle_id);
  • 参数说明:
参数 类型 说明
返回值 const idle_info_t* 返回idle的信息。
idle_id uint32_t idleID。

# idle_queue 函数

  • 函数功能:

用于非GUI线程增加一个idle,本函数向主循环的事件队列中发送一个增加idle的请求。

  • 函数原型:
ret_t idle_queue (idle_func_t on_idle, void* ctx);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
on_idle idle_func_t idle回调函数。
ctx void* idle回调函数的上下文。

# idle_queue_ex 函数

  • 函数功能:

用于非GUI线程增加一个idle,本函数向主循环的事件队列中发送一个增加idle的请求。

  • 函数原型:
ret_t idle_queue_ex (idle_func_t on_idle, void* ctx, tk_destroy_t on_destroy, void* on_destroy_ctx);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
on_idle idle_func_t idle回调函数。
ctx void* idle回调函数的上下文。
on_destroy tk_destroy_t 回调函数。
on_destroy_ctx void* 回调函数上下文。

# idle_remove 函数

  • 函数功能:

删除指定的idle。

  • 函数原型:
ret_t idle_remove (uint32_t idle_id);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
idle_id uint32_t idleID。

# idle_remove_all_by_ctx 函数

  • 函数功能:

根据上下文删除所有对应的idle。

  • 函数原型:
ret_t idle_remove_all_by_ctx (void* ctx);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
ctx void* idle回调函数的上下文

# idle_set_on_destroy 函数

  • 函数功能:

设置一个回调函数,在idle被销毁时调用(方便脚本语言去释放回调函数)。

  • 函数原型:
ret_t idle_set_on_destroy (uint32_t idle_id, tk_destroy_t on_destroy, void* on_destroy_ctx);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
idle_id uint32_t idleID。
on_destroy tk_destroy_t 回调函数。
on_destroy_ctx void* 回调函数上下文。