PostMessage和SendMessage区别

PostMessage 只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行 ;
SendMessage 必须等待其他程序处理消息后才返回,继续执行。


PostMessage 的返回值表示 PostMessage 函数执行是否正确 ;
而 SendMessage 的返回值表示其他程序处理消息后的返回值。
使用这两个发送消息函数的最重要的是要看你的程序是否要对消息的滞后性关注否 ,PostMessage 会造成消息的滞后性 , 而 SendMessage 则不会 , 但如果 SendMessage 消息处理失败 , 则会造成程序停止 !

在使用PostMessage()发送消息,并向消息处理函数传递指针或者引用结构的时候,请一定考虑结构或者指针指向的实例是否在消息处理函数执行时还有效,使用局部的结构作为消息参数传递,不小心就会出现这种野指针错误,而且不容易查明原因。因此,PostMessage()的参数尽可能避免使用局部的结构变量作为参数.

posted @ 2013-06-20 14:12  拿枪的程序员  阅读(319)  评论(0编辑  收藏  举报