消息与函数,postmessage与sendmessage
问题1:在写程序中,什么时候用消息投递什么时候用函数呢?经常是两者都可以实现功能,那用哪种更优呢?
问题2:PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。
不太理解,能不能具体举个例子什么时候用post什么时候用send呢?
例如:做一个串口接收数据并显示的程序,串口在不停的接收数据,当串口收到数据后,通过回调函数返回,然后在回调函数中SendMessage(pWnd->m_hWnd,WM_NEW_DATA_ARRIVE,(WPARAM)pRecvBuf,LPARAM(length)); 这时应该用send还是post?
在WM_NEW_DATA_ARRIVE消息处理函数中,需要对收到的数据进行处理,应该用DecodeData(data,length); 函数,还是PostMessage(WM_DECODE_DATA,(WPARAM)data,LPARAM(length));消息处理?
[解决办法]