首页| 论坛| 消息

标题:QWebSocket多线程访问问题
作者:abc127546
日期:2016-12-29 10:47
内容:

thread->start();
worker->moveToThread(thread);

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


#1 [dbzhang800 12-29 11:07]
移到其他线程后,所有操作都需要在那一个线程内进行。不要在其他线程内直接使用你这个socket
#2 [abc127546 12-29 11:10]
就是在新线程中运行的,打印了currentThreadID,确实是在新线程进行的发送操作。是否在QWebSocket不支持多线程访问,虽然把QWebSocket移动到了新建立的线程,但是QWebSocket内部的QTcpSocket我怀疑,没能跟着它移到其他线程,Qt也没有提供方法移动websocket内部的tcpsocket,因此出现这个问题
#3 回 dbzhang800 的帖子 [abc127546 12-29 11:11]
dbzhang800:移到其他线程后,所有操作都需要在那一个线程内进行。不要在其他线程内直接使用你这个socket (2016-12-29 11:07) 
就是在新线程中运行的,打印了currentThreadID,确实是在新线程进行的发送操作。是否在QWebSocket不支持多线程访问,虽然把QWebSocket移动到了新建立的线程,但是QWebSocket内部的QTcpSocket我怀疑,没能跟着它移到其他线程,Qt也没有提供方法移动websocket内部的tcpsocket,因此出现这个错误

回复 发表
主题 版块