PostMessage与SendMessage的区别  什么情况下用PostMessage比较好 又什么情况下用SendMessage比较好

解决方案 »

  1.   

    post是异步的,send是同步的
    比如
    postmessage(...)
    MessageBox("sent"); // 此时可能消息还没有被处理sendmessage(...); // 如果消息一直在处理,那么调用者一直等待
    MessageBox("sent"); // 此时消息一定被处理了现在回答你的问题,什么时候用post?当你只要发送消息,无需等待消息处理完毕的时候,用post,主程序响应及时。什么时候用send,你的下一个操作必须等消息处理完成才能进行,比如获取文本框的文字,发送wm_gettext,那必须send。
      

  2.   

    举一个极端的例子,你写了一个计算圆周率的程序,按了按钮就计算,要算1个小时。
    如果你用postmessage去触发按钮,那么瞬间(调用的程序)就返回了。
    如果用sendmessage,你的调用程序要陪着圆周率计算程序等上1个小时。