查看完整版本: [-- QWebSocket多线程访问问题 --]

QTCN开发网 -> Qt基础编程 -> QWebSocket多线程访问问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

abc127546 2016-12-29 10:47

QWebSocket多线程访问问题

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


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



dbzhang800 2016-12-29 11:07
移到其他线程后,所有操作都需要在那一个线程内进行。不要在其他线程内直接使用你这个socket

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

abc127546 2016-12-29 11:11
dbzhang800:移到其他线程后,所有操作都需要在那一个线程内进行。不要在其他线程内直接使用你这个socket (2016-12-29 11:07) 

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


查看完整版本: [-- QWebSocket多线程访问问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled