ucos_II之消息队列

各位好:
最近在学习ucos_II系统,在学习消息队列的时候写了以下代码,但是输出的结果第一条和我想象的不一样,不知道为什么,请大家帮忙看看。
代码如下`
void MainTask(void pdata)
{
pdata = pdata;
OSStatInit();
OSTaskCreate(App1Task,(void
)0,&App1TaskStk[TASK_STK_SIZE-1],APP1_TASK_PRIO);
OSTaskCreate(App2Task,(void*)0,&App2TaskStk[TASK_STK_SIZE-1],APP2_TASK_PRIO);
while(1)
{
if(OSTimeGet()>100 && OSTimeGet()<500)
{
printf(“1 %d\n”,OSTimeGet());
S100 = “The value of OSTime is from 100 to 500!”;
OSQPostFront(PQ,S100);
printf(“2\n”);
S = “The String belongs to which task?”;
OSQPostFront(PQ,S);
}
if(OSTimeGet()>1000 && OSTimeGet()<1500)
{
printf(“3\n”);
S500 = “The value of OSTime is from 1000 to 1500!”;
OSQPostFront(PQ,S500);
}
OSTimeDlyHMSM(0,0,1,0);
}
}

void App1Task(void *pdata)
{
pdata = pdata;
while(1)
{
printf(“App1 %s %d\n”,OSQPend(PQ,0,&err),OSTimeGet());
OSTimeDly(100);
}
}

void App2Task(void *pdata)
{
pdata = pdata;
while(1)
{
printf(“App2 %s %d\n”,OSQPend(PQ,0,&err),OSTimeGet());
OSTimeDly(100);
}
}
解果
ucos_II之消息队列
`第一条输出为啥不是LIFO的结果。