我有一个后台线程来处理数据并希望将结果发送到主窗口,但是在后台线程退出之前窗口可能会被销毁。
我使用PostMessage
来传递一些新创建的对象(在堆中创建),如果成功,肯定会由主窗口处理消息吗?
如果没有,这种情况的最佳做法是什么?
ps:我担心的是,在发布消息时,Window是有效的,但是在消息传递之前它就被销毁了。如果是这样,我不能delete
对象。
答案 0 :(得分:1)
我使用PostMessage来提供一些新创建的对象(在堆中创建),如果成功,主页窗口肯定会处理消息吗?
如果对PostMessage
的调用成功,则将消息放入队列中。然后,当线程泵送其消息队列时,将处理该消息。如果线程无法抽取其队列,或者在处理邮件时收件人窗口不再存在,则不会传递它。