7.22. WAIT_COMPLETION
Overview
提供wait_completion接口使用方法和常见问题。
7.22.1. 应用示例
示例演示:
wait_completion接口使用
example: 进入 apps/demo/demo_DevKitBoard/include/demo_config.h
,开启宏 USE_WAIT_COMPLETION_TEST_DEMO
。
7.22.2. 常见问题
wait_completion一般什么情况下使用
答:一般用于异步事件非阻塞处理,需要等待条件成立再去运行某个函数,并且想这个函数指定在任务中如app_core运行,避免阻塞等死,也可以达到单线程去运行函数
7.22.3. API Reference
Functions
-
u16 wait_completion_add_to_task(const char *task_name, int (*condition)(void*), int (*callback)(void*), void *priv, void *condition_priv)
条件轮询回调,回调函数将通过队列消息由指定线程接收执行
Note
指定的线程一定要接收任务队列消息才会执行回调函数
- Parameters
task_name, – 指定执行回调函数的任务名
condition – 条件判断函数指针
callback – 回调函数指针
priv, – 传到回调函数参数指针
condition_priv – 传到判断条件函数参数指针
- Returns
id:创建成功的id号 0:失败
-
u16 wait_completion(int (*condition)(void*), int (*callback)(void*), void *priv, void *condition_priv)
条件轮询回调,回调函数将通过队列消息由当前线程接收执行
Note
调用此函数的线程一定要接收任务队列消息才会执行回调函数
- Parameters
condition – 条件判断函数指针
callback – 回调函数指针
priv – 传到回调函数参数指针
condition_priv – 传到判断条件函数参数指针
- Returns
id:创建成功的id号 0:失败
-
int wait_completion_del(u16 id)
删除条件轮询回调函数
- Parameters
id – 创建的时候对应返回的ID号
- Returns
0:成功 非0:失败