Привет всем. Как правильно и быстро остановить поток, если в нем используется функция sleep?
void ThreadPlay::run(QList<QTreeWidgetItem *> list)
{
while(startStop){
bool status;
char *fileW;
QByteArray appDefaultB;
QString appDefault;
QProcess process;
int max = list.count();
for(int i = 0; i < max; i++){
if((list.at(i)->checkState(1) == Qt::Checked) && startStop){
int repeat = list.at(i)->text(6).toInt();
while(repeat != -1){
int saverMin = list.at(i)->text(4).toInt()*60;
if(saverMin != 0){
status = true;
emit saverStatus(status);
sleep(saverMin);
status = false;
emit saverStatus(status);
}
QString file = list.at(i)->text(7) + "\\" + list.at(i)->text(2);
QStringList arguments;
arguments.append(file);
arguments += list.at(i)->text(5).split(" ");
fileW = file.toLocal8Bit().data();
appDefaultB.resize(1024*32);
FindExecutableA(fileW, NULL, appDefaultB.data());
appDefault = appDefaultB;
process.start(appDefault, arguments);
QTime duration;
QTime durationSec;
duration = duration.fromString(list.at(i)->text(3), "hh:mm:ss");
sleep(durationSec.secsTo(duration));
process.close();
repeat--;
}
}
}
}
exec();
}