QT5:“无法从另一个线程禁用套接字通知程序”问题

问题描述 投票:0回答:1

我也面临类似的问题我的C++ QT应用程序是在QT4上构建的,并且当我迁移到QT5时,所有QTcpSocket实现都按预期工作,我收到“无法从另一个线程禁用套接字通知程序”问题

我也面临类似的问题,我的 C++ QT 应用程序是在 QT4 上构建的,并且当我迁移到 QT5 时,所有 QTcpSocket 实现都按预期工作,我收到“无法从另一个线程禁用套接字通知程序”问题

qt5
1个回答
0
投票

如果没有代码很难判断,但您可能从其他线程调用

waitForRead
来表示您的
QTcpSocket
已实例化,这是禁止的。

您有两种选择来解决这种情况

  1. 仅在 GUI 线程中使用异步 api (

    readyRead
    )(
    waitForRead
    冻结应用程序)

  2. 在单独的线程中实例化

    QTcpSocket
    并使用任何api(
    waitForRead
    冻结线程),但仅在该线程中,通过信号槽机制将数据传递到主线程

© www.soinside.com 2019 - 2024. All rights reserved.