如果PostMessage成功,是否保证窗口处理消息?

时间:2014-05-30 03:26:17

标签: windows winapi

我有一个后台线程来处理数据并希望将结果发送到主窗口,但是在后台线程退出之前窗口可能会被销毁。

我使用PostMessage来传递一些新创建的对象(在堆中创建),如果成功,肯定会由主窗口处理消息吗?

如果没有,这种情况的最佳做法是什么?

ps:我担心的是,在发布消息时,Window是有效的,但是在消息传递之前它就被销毁了。如果是这样,我不能delete对象。

1 个答案:

答案 0 :(得分:1)

  

我使用PostMessage来提供一些新创建的对象(在堆中创建),如果成功,主页窗口肯定会处理消息吗?

如果对PostMessage的调用成功,则将消息放入队列中。然后,当线程泵送其消息队列时,将处理该消息。如果线程无法抽取其队列,或者在处理邮件时收件人窗口不再存在,则不会传递它。