在OSMboxPend()使用时,一般是与OSMboxPost()成对使用,但如果刚刚读取完OSMboxPend()时,进入一个循环读取返回值时,这时如果收到OSMboxPend()的话,会怎么样呢?程序如下所示:
while(1)
{
msg = OSMboxPend(msg_box,0,&err);
while(*msg != Num_Count)
{
Num_Count++;
OSTimeDlyHMSM(0, 0, 1, 0);
}
}
若在while(*msg != Num_Count)中,程序其他地方执行了一个OSMboxPost(msg_box,Num_Count+10)的时候,while(*msg != Num_Count)中的*msg已经被改变了,程序验证随后附上;