神秘博客

QTcpSocket跨线程写入数据报错问题

目前在写一个类似QQ聊天软件的项目,在更新在线离线状态广播线程池的时候发现从外面无法调用write写入数据函数会报错

QSocketNotifier: Socket notifiers cannot be enabled or disabled from another

无法从另一个启用或禁用套接字通知程序,后来爬了好久看到一个函数可以指定运行函数在哪个线程运行就解决了。

QMetaObject::invokeMethod(tcpSocket, std::bind((qint64(QTcpSocket::*)(const QByteArray &))&QTcpSocket::write, tcpSocket, sendRetData.sendData.toUtf8()));
QMetaObject::invokeMethod(指定运行线程,运行函数,函数对象,函数形参内容);
版权说明:
点赞

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

觉得文章有用就请我吃包辣条吧

微信扫一扫打赏