前言
- 可以把一些运行优先级不高的操作放在工作队列workqueue的线程中执行
- 工作队列类似于消息队列,只是消息是个函数指针,多个操作可以排队的方式执行操作
- 初始化工作任务时可以指定延时的时间tick,这样会在指定时间超时后执行指定的任务
开启工作队列
- 这里使用RT-Thread ENV menuconfig:
- 可以修改工作队列【线程】的优先级与线程栈大小,一般优先级可以比其他的线程低,比IDLE线程高即可。
主要API
rt_work_init
:用户的工作任务初始化,这里的工作任务是一个函数,注意是能执行完退出的。rt_work_submit
: 通过submit,就把任务交给工作队列的线程,这个submit过程执行时间很短rt_work_cancel
: 取消已经提交的工作任务,如果周期性的提交某个任务,可以先通过<