gpt4 book ai didi

c++ - PostThreadMessage & 发送消息

转载 作者:行者123 更新时间:2023-11-28 02:21:11 24 4
gpt4 key购买 nike

我有三个问题。

1. 将 PostThreadMessage 用于 CWinThread 是否安全?

2. 使用 SendMessage 安全吗(在两个应用程序之间)?

消息可以消失吗?SendMessage、PostThreadMessage 有什么缺点?我可以发送的最大数量有限制吗?

3.杀死CWinThread的最好方法是什么?

非常感谢!

最佳答案

Is this safe to use PostThreadMessage to CWinThread?

只要发布消息的线程不会受到伤害,万一消息未送达或未收到,这是安全的。当接收线程处于模态循环中时(例如,显示模态对话框、通过菜单导航或在调整大小操作期间),发布到线程的消息会丢失。

Is this safe to use SendMessage(Between two applications)?

这通常是不安全的。如果目标应用程序无法检索传入消息,发送应用程序也会挂起。使用 SendMessageTimeoutSendNotifyMessage相反。

SendMessage 的缺点是,它可能导致 Message Deadlocks . PostThreadMessage 的缺点是消息可能会丢失(参见 Why do messages posted by PostThreadMessage disappear? )。

每个消息队列最多可发布 10,000 条消息(请参阅 PostMessage)。

What is the best way to kill CWinThread?

终止CWindThread 的最佳方法是不要终止CWinThread。如果你需要一个线程来终止,使用 Event object (或其他一些同步原语)来通知线程终止。这使线程有机会执行清理、释放全局资源等操作。

关于c++ - PostThreadMessage & 发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32416704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com