• 5701阅读
  • 2回复

【请教】是否能够使用QMap来创建多线程类对象为value的容器对象? [复制链接]

上一主题 下一主题
离线davis45
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-07
可能听上去比较拗口,其实就是小弟最近学习多线程,GUI中有按钮,需要在点击按钮后向子线程中发送一段字符串,我遇到的问题是如何找到需要接受这段字符串的子线程,我自作聪明定义了一个
Thread testThread;
QMap<int,Thread> childThreadMap;
但是编译时一直报错,错误信息为:error C2248: 'QObject::operator =' : cannot access private member declared in class 'QObject'
我估计是在创建Thread实例时,有副本传给了QMap,所以导致了“=”操作符错误,我现在把有关容器的代码都注释掉,是可以通过编译的。
*******************************************************************************************
子线程的功能:一直forever循环,直到有字符串插入时才对字符串处理,然后msleep(200);,继续循环。
我想请教:如何在程序运行时找到自己想找到的那个子线程呢?而且我会往子线程中插入字符串,由于没有公共资源,我没有采用锁机制,不知道那样会不会破坏线程的工作机制,导致程序混乱?


谢谢大家的指教
离线dbzhang800

只看该作者 1楼 发表于: 2011-04-07
QMap<int,Thread * >
离线davis45
只看该作者 2楼 发表于: 2011-04-07
回 1楼(dbzhang800) 的帖子
这样果然可行了,难道一定要用指针吗?
谢谢大家的指教
快速回复
限100 字节
 
上一个 下一个