事件之消息队列

一.什么是消息队列
消息队列是用于两个任务之间多个消息的传递,比如任务A 可以连续告诉任务 B两个消息甚至更多:消息1:我发现好的种子资源啦;消息2:但这些种子不能被打开。其实消息队列和消息邮箱传递的内容是一样的,都是消息指针,唯一的区别是消息邮箱一次只能传递一条消息:我发现好的种子资源啦!(任务B此时心情很好),接着,又传来一条消息:但这些种子不能被打开。(任务B此时是崩溃的)。
理解上,可以简单认为,消息队列是邮箱数组,由多个邮箱组成.

二.消息队列的创建
1.声明一个消息队列
OS_EVENT *q_msg;
2.定义消息队列用来存消息指针的数组大小
void* Bls[100];
3.创建一个消息队列
q_msg=OSQCreate(Bls,100);
原型为OS_EVENT *OSQCreate (void **start, INT16U size)
4.向消息队列放消息指针
OSQPost(q_msg,(void*)Cls);
原型为INT8U OSQPost (OS_EVENT *pevent,void *pmsg)
5.从消息队列拿消息指针
dndm =OSQPend(q_msg,0,&err);
原型为void *OSQPend (OS_EVENT *pevent,
INT32U timeout, INT8U *perr)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值