0

我创建了一个 UI 线程。我正在向 UI 线程发布消息,该线程会将数据写入文件。

我正在使用PostThreadMessageAPI 将消息发布到用户线程。我的问题是它没有写出我发布的所有数据。例如,如果我发布 100 个数据,它会在每次执行时随机写入 3 或 98 个变化。不会为每条消息调用 Postdata 的处理程序。

CWriteToFile *m_pThread = (CWriteToFile *)AfxBeginThread(RUNTIME_CLASS (CWriteToFile));

PostThreadMessage(m_pThread->m_nThreadID , WM_WRITE_TO_FILE, (WPARAM)pData,NULL);

WaitForSingleObject(m_pThread, INFINITE);   

的返回值为PostThreadMessage成功。

4

1 回答 1

0

如果消息队列已满,则PostMessage 系列函数可能会失败。您应该检查函数调用是否成功。

于 2009-11-25T09:26:11.280 回答