Qt - простой эхо-сервер - PullRequest
0 голосов
/ 31 мая 2011

Как в Qt вы могли бы поддерживать поток в QThreadPool; насколько я видел, есть только опция для запуска QRunnable, и мне сказали, что они не могут контролировать поток, в котором они находятся. Как бы мне, используя пул потоков, поддерживать сокет живым и готовым для чтения и записи?

Ответы [ 2 ]

1 голос
/ 31 мая 2011

QThreadPool управляет своими собственными потоками. QT Док говорит, что

QThreadPool управляет и перерабатывает отдельные объекты QThread, чтобы помочь сократить расходы на создание потоков в программы, использующие темы.

Таким образом, вы не должны пытаться поддерживать поток. Это нарушает назначение пула потоков.

Также сокеты QT спроектированы так, чтобы хорошо работать с основным циклом событий. Почему бы вам не попробовать их использовать?

0 голосов
/ 31 мая 2011

a) Просто используйте потомок QThread, а не пул потоков.

b) Не привязывать сокеты к потокам - когда select () возвращает, назначьте поток для обработки события сокета.

Rgds, Martin

...