【发布时间】:2014-07-02 18:08:00
【问题描述】:
我有一个向窗口发送更新消息的线程,我使用::SendMessage() 和::PostMessage() API。
我进出多个对话框,并通过窗口句柄 (m_hWnd) 在线程中注册我当前所在的对话框。如果我完全退出,主应用程序窗口不会处理这些消息。出于这个原因,我没有注册那个窗口。此时线程将拥有一个现在不存在的旧窗口的句柄。
如果它向那个不存在的窗口发送消息可以吗?我假设它不应该造成任何伤害,但想仔细检查。
【问题讨论】:
-
向 NULL 窗口发送消息好吗?我不想要不必要的
if-elsestatements,但我可以在所有消息将被定向到的线程中将窗口句柄设置为 NULL。 -
@Deduplicator 不知道为什么人们会否决一个合法的问题?在 Objective-C 中,你可以在任何对象上调用任何方法,在 NULL 对象上调用方法是常用的技巧(如果我现在记得的话)
-
它发生了。无论如何,这一点可以说得更清楚。体内的文字墙有点排斥……不过,让我重新审视事物。
标签: c++ multithreading mfc