1、返回值意义的区别,先看一下 MSDN 里的声明:

LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam
);
BOOL PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam
);

  其 4 个参数的意义是一样的,返回值类型不同。PostMessage的返回值(BOOL)表示PostMessage函数执行是否正确,SendMessage的返回值(LRESULT )表示其他程序处理消息后的返回值。
2、PostMessage 是异步的,SendMessage 是同步的。
  PostMessage 只把消息放入队列,不管消息是否被处理就返回,消息可能不被处理;而 SendMessage 等待消息被处理完了之后才返回,如果消息不被处理,发送消息的线程将一直被阻塞。
3、 当一个线程向该线程所建立的窗口SendMessage消息时,由 USER32.DLL 模块调用目标窗口的消息处理程序,并将结果返回,它只是调用指定窗口的消息处理过程,并不将消息入队列。当一个线程向另一个线程所建立的窗口 SendMessage时,该消息要追加到接收消息线程的发送消息队列,然后发送消息的线程进入等待状态,接收消息的线程处理完该消息后,由系统唤醒发送 消息的线程,这时发送线程继续进行。PostMessage 发送消息时,消息要先放入线程的消息队列,然后通过消息循环分派到目标窗口(DispatchMessage)。一个线程的消息队列实际上分为四种不同的 消息队列:Post消息队列、Send消息队列、输入消息队列、应答消息队列。PostMessage是将消息追加到Post消息队列,SendMessage是追加到Send消息队列,两个队列处理的优先级并不一样。

PostMessage与SendMessage区别相关推荐

  1. WindowsAPI中PostMessage与SendMessage的区别

    1.返回值意义的区别,先看一下 MSDN 里的声明: LRESULT SendMessage(         HWND hWnd,         UINT Msg,         WPARAM ...

  2. VC++中 PostMessage和SendMessage的区别

    1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数.而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息 ...

  3. postmessage与sendmessage的区别

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

  4. MFC工作笔记0009---VC++中 PostMessage和SendMessage的区别

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 最近利用vc编写UDP通讯程序,对其中的消息机制进行了整理.vc中的消息处理与.net中不同.Ne ...

  5. postmessage and sendmessage

    从msdn上看二者的解释: postmessage : Places (posts) a message in the message queue associated with the thread ...

  6. PostMessage()和SendMessage()

    使用PostMessage发送消息仅把消息挂到系统消息循环队列就返回, 而使用SendMessage函数要等到该消息处理完才返回. 在使用wParam或lParam参数传递数据或指针时必须使用Send ...

  7. PostMessage与SendMessage

    PostMessage消息发出后不等消息函数处理完就执行它的下一语句     SendMessage消息发出后阻塞等消息函数处理完执行它的下一语句 The PostMessage function p ...

  8. PostMessage和sendMessage传递问题

    1.PostMessage传递指针(引用类型)参数时会失败,因为post不等返回就已经把拷贝的指针变量(即形参)释放了,字符串是特殊的引用类型. 2.SendMessage阻塞类型可以传送指针类型.

  9. C#中PostMessage和SendMessage的参数传递实例

    用 PostMessage.SendNotifyMessage.SendMessageCallback 等异步函数发送系统消息时,参数里不可以使用指针,因为发送者并不等待消息的处理就返回,接受者还没处 ...

最新文章

  1. Nature 子刊:加州大学Banfield组揭示CPR细菌和DPANN古菌多样性及与低温TEM下宿主互作关系...
  2. 解码大脑:在脑机接口上寻求稳定性
  3. taglist go语言支持
  4. 基于springboot多模块项目使用maven命令打成war包放到服务器上运行的问题
  5. uni中动态加载class_Java基础·类加载、反射
  6. 如何利用缓存提高asp.net网站访问速度
  7. 基本入门的C/C++算法总结
  8. 常见驱动程序相关知识
  9. VBS/BAT使用/恶搞(操作+图示)
  10. 【计算机网络】物理层 : 奈氏准则 ( 失真 | “失真“ 影响因素 | 码间串扰 | 奈奎斯特定理 | 码元极限传输速率 | 信息极限传输速率 | 奈氏准则计算示例 )★
  11. Mac,Windows11,Windows10局域网互传共享文件
  12. 并行网络测试软件,并行程序测试
  13. mbedtls | 09 - 数字签名算法的配置与使用(RSA数字签名算法、ECDSA数字签名算法)
  14. idea之自定义注释模板
  15. 如何把一张图片分割成几张
  16. 删除注册表之后office2013 无法安装 无法删除 无法重装 的 解决方法。
  17. web端 刷卡器_在WEB浏览器使用IC卡读卡器的几种方案的对比
  18. 周鸿祎:一个好团队不要超过3个人[联络易]
  19. python爬虫 知乎_python爬虫——知乎(关于python的精华回答)
  20. 小梅哥Xilinx FPGA学习笔记2——三八译码器

热门文章

  1. 飞鸟影苑下载的电影目录清理
  2. 高薪程序员面试题精讲系列31之你熟悉Java中的哪些集合?
  3. 旅游(travel)
  4. 高并发大数据量的数据库的设计与优化
  5. 蓝魔 音悦汇T8+ MP4 无法开机 黑屏 修复记
  6. 词根词缀|sci/scribe/sect/sed等词根衍生单词
  7. 实测,大陆最好的搜索引擎——sogou
  8. medoo update mysql_Medoo Insert的使用:插入数据
  9. HTML5+CSS3(2)
  10. 移动类型541(委外业务)不产生会计凭证的原因