首页 > 试题广场 >

关于sendmessage和postmessage的区别,下

[单选题]
关于sendmessage和postmessage的区别,下面的说法错误的是()
  • postmessage发出消息后,将消息放到消息队列中,马上返回
  • sendmessage发出消息后,一直等到该消息执行完毕,才返回
  • 用sendmessage给其他线程创建的窗口发送消息时,消息也会进消息队列
  • 用2个函数只能给当前进程的窗口发送消息
推荐
D
A:PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。
B:SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。
C:当某线程调用sendmessage给别的线程创建的窗口时,发送的消息首先追加到接收线程的发送消息队列,发送线程处于空闲状态,等待接收线程处理完他的消息返回给发送线程的应答队列,等到后发送线程被唤醒取得应答队列的消息 (就是处理完消息的返回值),继续执行。
D:sendmessage和postmessage都可以给其他线程发送消息
编辑于 2015-01-30 16:02:00 回复(1)
PostMessage只负责将消息放到消息队列中,不确定何时及是否处理
    SendMessage要等到受到消息处理的返回码(DWord类型)后才继续
    PostMessage执行后马上返回
    SendMessage必须等到消息被处理后才会返回。
发表于 2016-09-20 23:21:59 回复(0)
yst头像 yst
sendmessege()给其他进程发送消息时消息可以进入消息队列,而给自身进程发送消息是消息不会进入消息队列
编辑于 2015-07-03 22:18:43 回复(0)
答案:D
也可以发送消息让其他线程接收。
发表于 2015-01-29 16:32:08 回复(0)