MFC,在运算线程中用::PostMessage传给界面线程的消息是逐个被执行的么?
MFC中使用AfxBeginThread(ReceiveThread,(LPVOID)v);
对应的线程函数为
UINT CLXJView::ReceiveThread(LPVOID v)
{
CLXJView *dlg=(CLXJView*) AfxGetApp()->GetMainWnd();
///////////////////////////////////////////////////
::PostMessage(m_hwnd1,WM_USER+1,0,0);
::PostMessage(m_hwnd1,WM_USER+5,0,0);
return 1;
}
我想问一下,这两个是消息是被主界面线程“串行”地执行还是“并行地”执行呢?
[解决办法]
按先进先出原则执行
[解决办法]
应该是串行。
[解决办法]
为什么不SendMessage
[解决办法]
首先两个消息进入消息队列,CWinThread类里的Run()函数是一个循环,它会依次取出消息,并进行处理。所以消息是一条一条地执行的。是串行