- 如果有任务队列,可以直接让task queue post task 执行。
- 如果需要创建线程,那么也可以在线程里post task 执行,主要用到非阻塞的方式。
看源码,创建线程后执行任务,有三种用法,还是比较实用的:
- 1 支持消息处理,这种可以用来做事件通知,也可以用来做定时器。
- 2 支持同步等待其他线程处理,invoke其他线程,但阻塞自己,这种目前我没用上。
- 3 支持不阻塞自己,处理任务 ,任务可以用bind 来构造,这种最简单直接,经常用。
- 主要看第一和第三。
- 举例说明:
第一种
-
比如 一个重复的事件:
-
先实现一个 消息处理
OnMessage(rtc::Message* msg)
- 这里根据消息id 来处理:<