Windows中的机制是否像Linux中的消息队列一样?

时间:2012-06-12 02:02:19

标签: c windows message

最近,我找到了一份工作(C / C ++)来在Windows中的不同线程之间使用消息通信。我用Google搜索并发现Windows也有一个消息队列,但它与一个窗口更相关,实际上,我的应用程序中不需要任何窗口。

与Linux中的消息队列一样,每个线程都创建一个消息队列,并获得一个消息队列ID,向该ID发送消息,从该ID接收等等,这就是我需要的消息队列。

Windows中有类似的机制吗?

1 个答案:

答案 0 :(得分:5)

您不需要在Windows上使用消息的窗口,任何调用PeekMessage或GetMessage的线程都会获得消息队列,您可以使用PostThreadMessage向其发送消息。

消息应该在同一个进程中正常工作但是如果这是跨进程的并且您需要发送超过size_t * 2的内容,那么您应该查看其他IPC mechanisms或使用共享内存和某种类型的锁定构建您自己的。 Windows也有MSMQ

您没有指定是否需要确切的POSIX接口,无论哪种方式,维基百科都有list个开源替代品......