我有一个 QThread,它从套接字读取并在有任何可用数据时发送信号(QT 信号)。阻塞读取(2)会很容易,但我需要能够从外部停止线程而无需等待太久。
如果我使用 pthread 我会使用 pselect 和pthread_kill(thread_id, some_signal)
,但 QThread 似乎没有任何类似的方法。并且在这个项目中添加对 pthread 的依赖似乎并不优雅。
我也不想使用其他丑陋的方法,例如不断尝试从套接字读取一些相对较小的超时。
编辑:套接字不是 TCP,而是蓝牙 L2CAP。