问题描述:
PostThreadMessage 可用于线程间的信息交互。 在使用CreateThread 创建消息后,向已创建的线程发送消息时,线程中的GetMessage()无法接收到线程。 GetMessage是一个消息阻塞函数,当线程队列中没有消息时该函数始终处于阻塞的状态,直到有新的消息到来。 刚创建完线程后, 该线程的 消息队列还未创建,必须使用GetMessage等函数运行后消息队列才能创建。 因此这时使用 PostThreadMessage 发送消息线程是无法收到的。
解决方法:
在创建线程的父线程中,当调用CreateThread 后,将将线程挂起n ms.
WaitForSingleObject(childthreadid,n); 这样在福线程挂起n ms后,再调用PostThreadMessage发送线程消息,子线程就可以接收到消息了.