Я пытаюсь заставить QTcpServer запускать отдельный поток для каждого соединения. Доступен пример кода, который делает именно это: http://doc.qt.io/qt-5/qtnetwork-threadedfortuneserver-example.html
Этот код работает путем подкласса QThread. Если я создам свой код на основе этого примера, я довольно скоро столкнусь с «QObject: невозможно создать дочерние элементы для родителя, который находится в другом потоке». предупреждения.
Существует документация Qt, в которой не рекомендуется создавать подклассы QThread, поскольку это «делает это неправильно»: http://blog.qt.io/blog/2010/06/17/youre-doing-it-wrong/
Итак, мой вопрос: если предоставленный Qt пример кода прямо нарушает рекомендуемую практику Qt, есть ли пример правильного способа сделать это? Любой пример, который я нашел до сих пор, является подклассом QThread.
QTcpServer
в другой поток. реализовано, что он запускает свое соединение сзади и излучает сигналы, когда что-то происходит. пример кода можно найти по адресу doc.qt.io/qt-5/qthread.html , поэтому если сервер работает в основном потоке, а его «рабочий процесс» обрабатывает события в фоновом режиме, он также должен выполнять свою работу. - person Zaiborg   schedule 17.03.2015