У меня есть QThread, который читает из сокета и посылает сигнал (сигнал QT), когда есть какие-либо данные. Это было бы легко с блокировкой чтения (2), но мне нужно иметь возможность остановить поток извне, не дожидаясь слишком долгого времени.Как прервать выбор/pselect, запущенный в QThread
Если бы я использовал pthread, я бы использовал pselect и pthread_kill(thread_id, some_signal)
, но у QThread нет , похоже, есть похожие методы. И добавление зависимости от pthread к этому проекту не кажется элегантным.
Я также не хочу использовать другие уродливые методы, такие как постоянная попытка чтения из сокета с некоторым относительно небольшим таймаутом.
Редактировать: Сокеты - это не TCP, а Bluetooth L2CAP.
Это похоже на то, что мне нужно, но мои сокеты не являются TCP (это разъемы bluetooth L2CAP). Есть ли что-то подобное? Я ничего не могу найти, но это не значит, что нет :-) – cube
Я не использовал его, но этот класс из модуля bluetooth выглядит правильно: http://doc.qt.nokia.com/ qtextended4.4/qbluetoothl2capsocket.html – Scott