Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt事件处理程序和boost ASIO';s io_服务?_C++_Qt_Asynchronous_Boost_Asio - Fatal编程技术网

C++ Qt事件处理程序和boost ASIO';s io_服务?

C++ Qt事件处理程序和boost ASIO';s io_服务?,c++,qt,asynchronous,boost,asio,C++,Qt,Asynchronous,Boost,Asio,两者都是带有事件循环的异步事件处理程序。这是底线 在Qt中,事件循环以QApplication::exec()开始,而io_服务以io_服务::run()开始。我的问题是在这一点之后我可以在Qt中实现哪些功能,而不是在io_服务中实现哪些功能,反之亦然?限制是什么?什么时候更可取(忽略Qt的GUI)? 更不重要的信息:在我的脑海中引发了这个问题的是我正在测试一些基于C++的QT程序,其中我的GUI逻辑来自于代码< QObjult< /C>。出于测试目的,我一直在寻找将函数(如io_服务中的函数

两者都是带有事件循环的异步事件处理程序。这是底线

在Qt中,事件循环以
QApplication::exec()
开始,而io_服务以
io_服务::run()开始。我的问题是在这一点之后我可以在Qt中实现哪些功能,而不是在io_服务中实现哪些功能,反之亦然?限制是什么?什么时候更可取(忽略Qt的GUI)?


<强>更不重要的信息:在我的脑海中引发了这个问题的<强>是我正在测试一些基于C++的QT程序,其中我的GUI逻辑来自于代码< QObjult< /C>。出于测试目的,我一直在寻找将函数(如io_服务中的函数)发布到Qt事件处理程序的方法(为了简单起见,绕过

QObject::connect()
这件事),但后来意识到唯一的发布函数
QApplication::postEvent(),仅将Qt事件作为参数;不是函数、函子或lambda!我没有问这个问题,因为这是一个显而易见的问题,我还在努力解决这个问题。

我认为QObject和io_服务之间没有什么重大区别。至于您的XY问题,
QMetaObject::invokeMethod(obj,[]{})
接受lambda。

我认为QObject和io_服务之间没有什么大的区别。对于XY问题,
QMetaObject::invokeMethod(obj,[]{})
接受lambda