我目前大量使用libevent用于C / C ++网络编程,我喜欢我可以轻松制作基于事件的应用程序,而不必担心我是否需要使用select,poll,epoll,kqueues等。我的应用程序make是纯文本的,现在我正在查看Qt / QML为我现有的网络应用程序制作GUI。
我只是不知道如何将它们集成到一个应用程序中,因为libevent和qt都想运行自己的事件循环。我是否需要查看在自己的线程中运行每个线程(一个线程中的gui和另一个线程中的libevent-backend)或者我错过了一些非常简单的东西? : - )
谢谢, 尼娜
答案 0 :(得分:0)
你可以从libevent循环中的空闲计时器调用QApplication::processEvents(或者反过来,假设libevent有类似的东西)。
OTOH,有两个线程可能不是 坏,因为Qt允许线程之间的信号/插槽连接(以及通过QMetaObject::invokeMethod的一般方法调用)。这取决于libevent和Qt GUI之间的集成需要在你的应用程序中的紧密程度。
答案 1 :(得分:0)
实现包装libevent的QAbstractEventDispatcher。