PostThreadMessage & SendMessage
PostThreadMessage & SendMessage
本文关键字:SendMessage PostThreadMessage 更新时间:2023-10-16
我有三个问题。
1。使用PostThreadMessage到CWinThread是安全的吗?
2。使用SendMessage(在两个应用程序之间)安全吗?
消息可以消失吗?SendMessage,PostThreadMessage的缺点是什么?我能发送的最大数量是多少?
3。终止CWinThread的最好方法是什么?
非常感谢!
使用PostThreadMessage到CWinThread是安全的吗?
如果消息没有传递或被拾取,在发布消息的线程不会受到伤害的情况下,这是安全的。当接收线程处于模态循环中时,发送到线程的消息会丢失(例如,显示模态对话框,在菜单中导航,或在调整大小操作期间)。
使用SendMessage(在两个应用程序之间)安全吗?
这通常是不安全的。如果目标应用程序无法检索传入消息,则发送应用程序也会挂起。使用SendMessageTimeout或SendNotifyMessage代替。
SendMessage
的缺点是,它可能导致消息死锁。PostThreadMessage
的缺点是消息可能会丢失(参见为什么由PostThreadMessage发布的消息会丢失?)。
每个消息队列最多可发布10,000条消息(参见PostMessage)。
杀死CWinThread的最好方法是什么?
杀死CWindThread
的最佳方法是不杀死CWinThread
。如果需要终止线程,请使用Event对象(或其他同步原语)向线程发出终止信号。这让线程有机会执行清理、释放全局资源等等。
相关文章:
- "std::list::splice(std::const_iterator pos, std::list&& other)"是否保证将"其他"留空?
- 将卡诺地图简化器从 SOP 更改为 POS 结果
- SendMessage 使用 RegisterWindowMessage API 失败
- QT 事件过滤器 mouseEvent->pos().x() 始终为零,但 mouseEvent->pos().y() 工作正常
- 尝试使用QNetworkAccessManager get()而不是QNetworkAccess Manager pos
- 我可以在 SDL 窗口外跟踪我的鼠标 pos 吗?
- 为什么字符串(常量字符* s,size_t pos,size_t len = npos)有效?
- 为什么 gl_FragCoord.z 与 ((pos.z / pos.w) + 1.0) * 0.5 不同?
- 获取使用 Qt c++ 在 Linux 中通过 USB 连接的 ESC/POS 打印机的状态
- “POS”未在此范围内声明
- 消息映射如何与 SendMessage() 方法交互?
- 在 POS 打印机上打印条形码字体
- 变量'pos'正在使用未初始化
- 如何实现 std::map::查找包含两个结构'Pos'结构的比较逻辑,每个结构包含 x 和 y 坐标
- forward_list::splice_after( const_iterator pos, forward_list&other, const_iterator i ) 功能
- WinApi消息循环,Postmessage的工作原理与SendMessage类似
- Sendmessage在方法定义内部无法正常工作
- 如何在 c++ 中从 SendMessage() 接收信息
- 提前钻头操纵,在任何POS中留下空位
- seekg 和 seekp :seek(streampos pos) 和 seek(streamoff off, ios