目前在写一个类似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(指定运行线程,运行函数,函数对象,函数形参内容);