在一个MFC项目开发中由于数据中心线程需要发送多个数据消息给IO线程,在IO查看了下数据发现数据总是不对。使用的发送消息PostThreadMessage函数,第一个想到是是不是有SendThreadMessage,但是没。。。于是自己弄了一个event进行强制同步。
在发送消息前创建::CreateEvent(NULL,TRUE,FALSE,NULL),进行发送一条消息后,把event句柄也发送过去,然后::WaitForSingleObject(hEvent,INFINITE),等消息另一端处理消息后SetEvent,这样可以知道另一边已处理完数据。