void ThreadHandler::RemoveThreads() { for (int i = 0; i < mThreads.size(); i++) { mThreads[i]->terminate(); disconnect(mThreads.last(), SIGNAL(Done()), this, SLOT(ThreadDone())); disconnect(mThreads.last(), SIGNAL(FileChecked(const QString &)), &mResults, SLOT(FileChecked(const QString &))); delete mThreads[i]; } mThreads.clear(); }
void ThreadHandler::SetThreadCount(const int count) { if (mRunningThreadCount > 0 || count == mThreads.size() || count <= 0) { return; } //Remove unused old threads RemoveThreads(); //Create new threads for (int i = mThreads.size(); i < count; i++) { mThreads << new CheckThread(mResults); connect(mThreads.last(), SIGNAL(Done()), this, SLOT(ThreadDone())); connect(mThreads.last(), SIGNAL(FileChecked(const QString &)), &mResults, SLOT(FileChecked(const QString &))); } }