C++ QThread和boost线程之间的通信

C++ QThread和boost线程之间的通信,c++,boost-thread,qthread,C++,Boost Thread,Qthread,Gui在Qt中,Api在boost中。Gui应该位于Api之上。Api的功能之一是进行网络级数据管理,以某种方式处理数据并与Gui通信(即,将Gui与Api的另一端连接起来)。为了防止GUI冻结Api,它在单独的线程中工作。如果Gui和Api都使用了Qt,那么使用Qt的跨线程信号槽机制,通信会更容易。Api发出并立即返回,反之亦然。因此,除非明确指定(Qt::BlockingQueuedConnection),否则不会阻止任何对象。我一直在使用boost,因为需要在boost中编写新的Api。如

Gui在
Qt
中,Api在
boost
中。Gui应该位于Api之上。Api的功能之一是进行网络级数据管理,以某种方式处理数据并与Gui通信(即,将Gui与Api的另一端连接起来)。为了防止GUI冻结Api,它在单独的线程中工作。如果Gui和Api都使用了Qt,那么使用Qt的跨线程
信号槽
机制,通信会更容易。Api
发出
并立即返回,反之亦然。因此,除非明确指定(
Qt::BlockingQueuedConnection
),否则不会阻止任何对象。我一直在使用
boost
,因为需要在
boost
中编写新的Api。如何在
boost Qt
通信中实现此机制?Api将是头文件+静态库,所以Gui和Api将生成单个可执行文件。我必须至少支持Linux、Windows和Mac


编辑::对不起,我已经和管理层进行了冗长的讨论(说得委婉一点),但最终结果是我“不得不”在Api中使用boost。事实上,Gui甚至可能不使用Qt。任何拥有Gui的人都应该能够插入我们的Api与另一端进行通信(有点像Gui--Api--kernel模型)。因此,关于在任何一方使用Qt等的建议都不会有太大的帮助。我在两边都换了Qt。可以说和@amankamboj1一样-Qt线程已经足够了,把它们混在一起是个很好的主意-或者更好,只是不值得这么麻烦