PostMessage与SendMessage区别
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区别相关推荐
- WindowsAPI中PostMessage与SendMessage的区别
1.返回值意义的区别,先看一下 MSDN 里的声明: LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM ...
- VC++中 PostMessage和SendMessage的区别
1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数.而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息 ...
- postmessage与sendmessage的区别
PostMessage 只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行 ; 而 SendMessage 必须等待其他程序处理消息后才返回,继续执行. PostMessage 的返回值表示 ...
- MFC工作笔记0009---VC++中 PostMessage和SendMessage的区别
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 最近利用vc编写UDP通讯程序,对其中的消息机制进行了整理.vc中的消息处理与.net中不同.Ne ...
- postmessage and sendmessage
从msdn上看二者的解释: postmessage : Places (posts) a message in the message queue associated with the thread ...
- PostMessage()和SendMessage()
使用PostMessage发送消息仅把消息挂到系统消息循环队列就返回, 而使用SendMessage函数要等到该消息处理完才返回. 在使用wParam或lParam参数传递数据或指针时必须使用Send ...
- PostMessage与SendMessage
PostMessage消息发出后不等消息函数处理完就执行它的下一语句 SendMessage消息发出后阻塞等消息函数处理完执行它的下一语句 The PostMessage function p ...
- PostMessage和sendMessage传递问题
1.PostMessage传递指针(引用类型)参数时会失败,因为post不等返回就已经把拷贝的指针变量(即形参)释放了,字符串是特殊的引用类型. 2.SendMessage阻塞类型可以传送指针类型.
- C#中PostMessage和SendMessage的参数传递实例
用 PostMessage.SendNotifyMessage.SendMessageCallback 等异步函数发送系统消息时,参数里不可以使用指针,因为发送者并不等待消息的处理就返回,接受者还没处 ...
最新文章
- Nature 子刊:加州大学Banfield组揭示CPR细菌和DPANN古菌多样性及与低温TEM下宿主互作关系...
- 解码大脑:在脑机接口上寻求稳定性
- taglist go语言支持
- 基于springboot多模块项目使用maven命令打成war包放到服务器上运行的问题
- uni中动态加载class_Java基础·类加载、反射
- 如何利用缓存提高asp.net网站访问速度
- 基本入门的C/C++算法总结
- 常见驱动程序相关知识
- VBS/BAT使用/恶搞(操作+图示)
- 【计算机网络】物理层 : 奈氏准则 ( 失真 | “失真“ 影响因素 | 码间串扰 | 奈奎斯特定理 | 码元极限传输速率 | 信息极限传输速率 | 奈氏准则计算示例 )★
- Mac,Windows11,Windows10局域网互传共享文件
- 并行网络测试软件,并行程序测试
- mbedtls | 09 - 数字签名算法的配置与使用(RSA数字签名算法、ECDSA数字签名算法)
- idea之自定义注释模板
- 如何把一张图片分割成几张
- 删除注册表之后office2013 无法安装 无法删除 无法重装 的 解决方法。
- web端 刷卡器_在WEB浏览器使用IC卡读卡器的几种方案的对比
- 周鸿祎:一个好团队不要超过3个人[联络易]
- python爬虫 知乎_python爬虫——知乎(关于python的精华回答)
- 小梅哥Xilinx FPGA学习笔记2——三八译码器