gpt4 book ai didi

c++ - 如何中断QThread中运行的select/pselect

转载 作者:行者123 更新时间:2023-11-28 03:55:53 30 4
gpt4 key购买 nike

我有一个 QThread,它从套接字读取数据并在有可用数据时发送信号(QT 信号)。阻塞读取 (2) 会很容易,但我需要能够从外部停止线程而无需等待太久。

如果我使用 pthread,我会使用 pselect 和 pthread_kill(thread_id, some_signal),但 QThread 不会好像有什么类似的方法。在这个项目中添加对 pthread 的依赖似乎并不优雅。

我也不想使用其他丑陋的方法,比如不断尝试以相对较小的超时时间从套接字中读取数据。

编辑:套接字不是 TCP,而是蓝牙 L2CAP。

最佳答案

一个不太优雅但简单有效的解决方案:创建一个管道并让 select 等待管道或我的套接字。这样我就可以随时通过向管道写入内容来停止等待。

关于c++ - 如何中断QThread中运行的select/pselect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3659126/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com