我想一起使用Asio和Qt吗?他们每个都有一个必须调用的方法,每个方法都是阻塞的,例如:Asio有io_service.run(),qt有QCoreApplication.exec()如果我运行其中一个,那么另一个就无法运行。
我有两个解决方案:
这些解决方案是否正确?
答案 0 :(得分:2)
这是一个简单的解决方案,适用于每个平台,但它有一些小缺点。您正在为应用程序的asio部分引入延迟,这可能是可接受的,也可能不是 - 取决于您的情况。
您可能对my solution感兴趣,它可以真正整合asio和QT主循环。
有关此主题的更多信息,请参阅以下问题:How to integrate Boost.Asio main loop in GUI framework like Qt4 or GTK
答案 1 :(得分:0)
您肯定希望了解多线程应用程序。 Qt可以很好地帮助你platform-independent threading classes。您还需要在communication之间解决objects owned by different threads问题,并且还需要牢记painting is limited outside of the GUI thread。