• 9927阅读
  • 7回复

线程中创建线程问题 [复制链接]

上一主题 下一主题
离线winxxp
 
只看楼主 倒序阅读 楼主  发表于: 2008-07-23
— 本帖被 XChinux 执行加亮操作(2008-07-23) —
各位好!
谁做过在线程中创建线程?

我是这样做的:
两个类都继承自QThread,然后在QMainClass中先创建一个线程,然后在创建另一个线程。可运行时提示:
cannot create children for a parent that is in a different thread


哪位有方法?
离线weizhy
只看该作者 1楼 发表于: 2008-07-23
我想你肯定是创建线程a,再创建线程b,并把a作为b构造函数的参数
这样就会出现你说的问题
直接按字面意思理解就OK

请参考assistant->thread support in Qt:
The child of a QObject must always be created in the thread where the parent was created. This implies, among other things, that you should never pass the QThread object (this) as the parent of an object created in the thread (since the QThread object itself was created in another thread).
离线lzian
只看该作者 2楼 发表于: 2008-07-23
你是怎么定义的?贴代码
离线winxxp
只看该作者 3楼 发表于: 2008-07-23
问题基本解决!
大约是Qobject出问题!
出错意思是不能在一个线程中创建对象,而这个对象的父对象在另一个线程中!后来我就没有给线程的对象定义父对象,直接为0!
离线weizhy
只看该作者 4楼 发表于: 2008-07-24
.............
离线sikylori

只看该作者 5楼 发表于: 2009-04-07
我也出现这样的问题,就发送一个信号,然后发送TCP的程序放在槽内实现,这样就行
离线spyy26224574

只看该作者 6楼 发表于: 2009-07-14
引用第3楼winxxp于2008-07-23 21:43发表的  :
问题基本解决!
大约是Qobject出问题!
出错意思是不能在一个线程中创建对象,而这个对象的父对象在另一个线程中!后来我就没有给线程的对象定义父对象,直接为0!



这样也行~~~?!
怀才就像怀孕,怀久了才能被人知道。
离线280923299
只看该作者 7楼 发表于: 2009-07-14
引用第3楼winxxp于2008-07-23 21:43发表的  :
问题基本解决!
大约是Qobject出问题!
出错意思是不能在一个线程中创建对象,而这个对象的父对象在另一个线程中!后来我就没有给线程的对象定义父对象,直接为0!


这样千万不要漏了释放内存,线程这种东西一定会重复使用,释放内存是重要的。。内存泄露就是这样来的。
快速回复
限100 字节
 
上一个 下一个