首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

多线程修改循环变量有关问题

2012-03-26 
多线程修改循环变量问题请问我有一个界面线程通过按钮修改bool变量i,一个工作线程中有while(get(i)){...}i

多线程修改循环变量问题
请问我有一个界面线程通过按钮修改bool变量i,
一个工作线程中有
while(get(i))
{
...
}
i的初始值为true,请问工作可以通过界面线程使工作线程退出while循环吗?



[解决办法]
理论上可以,但为什么要这样?用信号和槽的方式,能很好的解决问题。
[解决办法]
没问题,线程之间共享内存。
[解决办法]
把i放到线程类里面,用QMutex保护i。
class xxxx :public QThread
{
xxxxx;
public:
void seti(bool i);

private:
QMutex mutex;
bool myi; 
};
void xxxxx::seti(bool i)
{
mutex.lock();
myi = i;
mutex.unlock();
}

while(true)
{
mutex.lock();
if(myi)
{
mutex.unlock();
break;
}
mutex.unlock();
}
大概就是这个意思。

热点排行