请问我有一个界面线程通过按钮修改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();
}
大概就是这个意思。