• 9249阅读
  • 3回复

QWebSocket多线程访问问题 [复制链接]

上一主题 下一主题
离线abc127546
 

只看楼主 倒序阅读 楼主  发表于: 2016-12-29
QWebSocket多线程访问问题
thread->start();
worker->moveToThread(thread);


worker为QWebSocket的类,移到其他线程后调用  m_socket->sendTextMessage(mess);
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread


离线dbzhang800

只看该作者 1楼 发表于: 2016-12-29
移到其他线程后,所有操作都需要在那一个线程内进行。不要在其他线程内直接使用你这个socket
离线abc127546

只看该作者 2楼 发表于: 2016-12-29
就是在新线程中运行的,打印了currentThreadID,确实是在新线程进行的发送操作。是否在QWebSocket不支持多线程访问,虽然把QWebSocket移动到了新建立的线程,但是QWebSocket内部的QTcpSocket我怀疑,没能跟着它移到其他线程,Qt也没有提供方法移动websocket内部的tcpsocket,因此出现这个问题
离线abc127546

只看该作者 3楼 发表于: 2016-12-29
回 dbzhang800 的帖子
dbzhang800:移到其他线程后,所有操作都需要在那一个线程内进行。不要在其他线程内直接使用你这个socket (2016-12-29 11:07) 

就是在新线程中运行的,打印了currentThreadID,确实是在新线程进行的发送操作。是否在QWebSocket不支持多线程访问,虽然把QWebSocket移动到了新建立的线程,但是QWebSocket内部的QTcpSocket我怀疑,没能跟着它移到其他线程,Qt也没有提供方法移动websocket内部的tcpsocket,因此出现这个错误
快速回复
限100 字节
 
上一个 下一个