问题产生原因,系统创建了一个socket在主线程,自己单独开了一个线程,我在单独开的线程里调用这个socket,报错。
解决办法1:直接在线程里实例化这个socket而不是调用其他线程的socket。
解决办法2:利用connect建立信号与槽通知另一个线程处理。线程A肯定是不能直接调用线程B的函数的,但是可以通过emit 发送,线程B通过槽函数收到然后帮A调用这个函数。
原因分析:当一个线程正常执行时,代码逻辑顺序固定,突然另一个线程告诉你需要处理某种操作,这个线程会瞬间错乱崩溃,并且,原线程可能正在访控制资源。所以不同线程之间都是独立按顺序运行代码。如果希望线程间通信那还需要类似于管道、消息队列一类的方式进行。