我也面临类似的问题我的C++ QT应用程序是在QT4上构建的,并且当我迁移到QT5时,所有QTcpSocket实现都按预期工作,我收到“无法从另一个线程禁用套接字通知程序”问题
我也面临类似的问题,我的 C++ QT 应用程序是在 QT4 上构建的,并且当我迁移到 QT5 时,所有 QTcpSocket 实现都按预期工作,我收到“无法从另一个线程禁用套接字通知程序”问题
如果没有代码很难判断,但您可能从其他线程调用
waitForRead
来表示您的 QTcpSocket
已实例化,这是禁止的。
您有两种选择来解决这种情况
仅在 GUI 线程中使用异步 api (
readyRead
)(waitForRead
冻结应用程序)
在单独的线程中实例化
QTcpSocket
并使用任何api(waitForRead
冻结线程),但仅在该线程中,通过信号槽机制将数据传递到主线程