Оба являются асинхронными обработчиками событий с циклом событий. Это главная линия.
В Qt цикл обработки событий начинается с QApplication::exec()
, а с io_service начинается с io_service::run()
, Мой вопрос после этого. Что я могу достичь в Qt, а не в io_service и наоборот? Каковы ограничения? Когда предпочтительнее (игнорируя графический интерфейс Qt)?
Более неважная информация: что вызвало у меня этот вопрос является то, что я тестировал некоторые программы на C ++ Qt, где у меня есть логика моего GUI в классе, полученном из QObject
, В целях тестирования я искал способы отправки функций (как в io_service) в обработчик событий Qt (так, в обход QObject::connect()
вещь для простоты), но потом понял, что единственная функция публикации QApplication::postEvent();
принимает только события Qt в качестве параметров; не функции, функторы или лямбды! Я не спрашивал об этом, потому что это очевидно XY проблема, и я все еще работаю над этим.
Задача ещё не решена.
Других решений пока нет …