Есть какой-то код в потоке:
/// Класс параллельного потока для чтения лог-файлов
class RThread: public QThread
{
Q_OBJECT
// ...........................
private:
volatile bool stopped; ///< переменная, контролирующая начало и конец выполнения потока
protected:
virtual void run();
public:
void stop() { stopped = true; }
};
void RThread::run()
{
// ..............................
exec();
}
/// Остановка дополнительного потока
void RThread::stop() { stopped = true; }
/// Загрузка одного файла
bool TLV::loadFile()
{
bool result = false;
if(threadRFile -> isRunning())
{
threadRFile -> stop(); ///< oстановка дополнительного потока
threadRFile -> quit();
delThread();
result = readFile();
visible_tracks = true;
}
else
{
/// any
}
update();
return result;
}
Не увидел на что влияет stopped.
Попробуй добавить wait, для того что-бы убедиться что нить завершилась.
/// Загрузка одного файла
bool TLV::loadFile()
{
bool result = false;
if(threadRFile -> isRunning())
{
threadRFile -> stop();
threadRFile -> quit();
threadRFile -> wait();
delThread();
result = readFile();
visible_tracks = true;
}
else
{
/// any
}
update();
return result;
}
Спасибо. Помогло!
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)