首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

消息与函数,postmessage与sendmessage,该怎么解决

2012-03-17 
消息与函数,postmessage与sendmessage问题1:在写程序中,什么时候用消息投递什么时候用函数呢?经常是两者都

消息与函数,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));消息处理?


[解决办法]

探讨
在WM_NEW_DATA_ARRIVE消息处理函数中,需要对收到的数据进行处理,应该用DecodeData(data,length); 函数,还是PostMessage(WM_DECODE_DATA,(WPARAM)data,LPARAM(length));消息处理?

这个怎么没人回答呢。。。

[解决办法]
PostMessage和SendMessage都是发送消息的函数,两者的不同就是,前者把消息放在Windows的消息队列中就不管了,而SendMessage还要等待其执行返回。就使用而言,大多数情况下两者可以互换使用,但对于一些特殊情况而言,就不同了,比如,你需要第一时间得到返回消息,那么就的使用SendMessage,或者你只是发送一个消息,而不希望程序去“空等”执行返回,那就使用PostMessage。在一般情况下,等待与不等待所耗费的时间很短,完全可以忽略不计。
[解决办法]
探讨

继续等待高人。。。

热点排行