16,235
社区成员
发帖
与我相关
我的任务
分享
LoadPix(const QString& dir , const QList<QString>& allFile , QObject* parent = 0);
void run()
{
for(auto A : file_List)
{
QString fileName = currentDir + tr("/") + A;
QPixmap pixs;
pixs.load(fileName);
if(!(pixs.isNull()))
emit getPix(pixs);
}
}
LoadPix* loadPix
void fun_1()
{
//......
if(loadPix != 0)
{
delete loadPix;
loadPix = new LoadPix("F:/pix",fileName_List,this);
}
connect(loadPix,SIGNAL(getPix(const QPixmap&)),this,SLOT(setItemPix(const QPixmap&)));
loadPix.start();
//......
}
void fun_2()
{
if(loadPix->isRuning())
loadPix->wait();
//loadPix->exit(); //这里根本停不下来
qDebug()<<loadPix->isRuning();
//....
}
loadPix->terminate();
loadPix->wait();
delete->loadPix;
loadPix = NULL;
如果这个线程你不再用了,就直接释放了,这样试一下
如果还要使用,应该在run()里面加while()
bool bRun = true;
void run()
{
while(bRun )
{
........
}
}
如果不想继续加载图片就改变bRun=false,这样虽然线程也在跑但是就不执行加载了