事件之消息队列

来源:互联网 发布:windows10自带软件 编辑:程序博客网 时间:2024/05/17 23:30

一.什么是消息队列
消息队列是用于两个任务之间多个消息的传递,比如任务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)

0 0
原创粉丝点击