两者都是具有事件循环的异步事件处理程序。这就是头条。
在Qt中,事件循环以QApplication::exec()
开头,而io_service以io_service::run()
开头。我的问题是在这一点之后。 我在Qt中可以实现的是什么,而不是在io_service中,反之亦然?有什么限制?何时更可取(忽略Qt的GUI)?
更多不重要的信息:在我看来是什么触发了这个问题是我正在测试一些基于C ++ Qt的程序,其中我在一个派生自{{1}的类中具有GUI的逻辑}}。为了我的测试目的,我一直在寻找将函数(比如在io_service中)发布到Qt事件处理程序的方法(因此,为简单起见绕过QObject
),但后来意识到唯一的发布函数QObject::connect()
,将仅Qt事件作为参数;不是函数,算子或者lambdas!我没有问过这个问题,因为那是一个显而易见的XY problem,而且我还在努力。
答案 0 :(得分:0)
我认为QObject和io_service之间没有任何主要区别。至于您的XY问题,QMetaObject::invokeMethod(obj, []{})
接受一个lambda。