关于Qt多线程的有关问题,请求各位大神给点建议或者解决方案 吧,小弟我实在无力了

关于Qt多线程的问题,请求各位大神给点建议或者解决方案 吧,我实在无力了
我最近在忙于做老师布置的 一个项目,我做的项目是一个局域网聊天的软件,里面有一部分用到了多线程,我打算用多线程实现一个可以 多个人同时聊天的功能,就是说打开一个对话框就是一个线程,接收到对方的消息创建一个对话框也是创建一个线程,可是我在创建的新线程中new 一个聊天的dialog对象(对话框里面存了一些udpsocket对象以及IP地址还有Hostname等,有信号和槽机制来接收消息以及发送消息),然后在thread::run方法内直接执行对话框的exec()函数,可是每当我的程序收到对方发过来的信息的时候,我的程序就会崩溃,出错的信息是这样的: ASSERT failure in QWidget: "Widgets must be created in the GUI thread.", file kernel\qwidget.cpp, line 1264, 多线程的程序我第一次编,Qt使用也不是 很熟练,我网上查了好多,也没理清思路,望各位大神指点一下,或者告诉我一个替代这种方法的更好的思路,不甚感激

------解决方案--------------------
对多线程里涉及到公用资源,要做保护,一个时间内,只能一个线程控制一个资源,这个是必须的,可以用线程互斥,或事件对象,或资源加锁,试试
------解决方案--------------------
错误说的很清楚,Widgets只能在界面线程中创建,而不是后台线程
可以为每一个窗口创建一个后台线程来收发数据,而不是在线程中创建对话框