Разница между потоком с и без цикла событий

Поток с циклом событий

Мы создали объект QTcpServer в отдельном потоке, и он прослушивает входящие соединения и обрабатывает их по мере их возникновения. В какой-то момент он удаляется, и в потоке ничего не генерируется.

Поток идет в бесконечный блок (используя память, но без процессора), если не удален вручную?

Поток без цикла событий

Объект QTcpServer создан и прослушивается.

Это QTcpServer.listen () мешая потоку просто пройти через весь код и естественно закончить?

А как насчет входящих соединений? Должны ли они быть опрошены вручную?

1

Решение

это хорошая практика для подключения finished сигнал потока к своему собственному deleteLater слот, так что он может очистить себя, но это может привести к зависанию указателей, если вы сохраните указатель на QThread

QTcpServer.listen() вернется сразу, просто активирует порт

при прослушивании TCPServer испустит newConnection() сигнализировать каждый раз, когда новое соединение инициируется клиентом, после чего вы можете получить его с помощью nextPendingConnection

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]