最近,我得到了一个工作(C / C ++)在Windows中使用不同线程之间的消息通信。 我谷歌search,发现Windows也得到了一个消息队列,但它更涉及到一个窗口,实际上,我不需要在我的应用程序中的任何窗口。
就像Linux中的消息队列一样,每个线程都会创build一个消息队列,并获得一个消息队列ID,向该ID发送消息,从该ID接收消息等,这就是我需要的消息队列。
Windows中是否有类似的机制?
您不需要窗口来使用Windows上的消息,任何调用PeekMessage或GetMessage的线程都会获取消息队列,并且可以使用PostThreadMessage向其发送消息。
消息应该在相同的过程中正常工作,但如果这是跨进程,并且需要发送超过size_t * 2,则应该查看其他IPC机制或使用共享内存和某种类型的锁定构建自己的机制 。 Windows也有MSMQ 。
您没有指定是否需要确切的POSIX接口,无论哪种方式,维基百科都有一个开源替代品列表 …