سلام دوستان من یک برنامه کوچیک ساختم مثلاً میاد 20000 هزار تا فایل رو rename میکنه با استفاده از thread مشکل هنگ و سرعت برنامه درست شد منتها وقتی داخل بدنه thread این کارو انجام میدادم دون دونه فایلها رو تغیر نام میداد الان من میخوام مثلاً به (تعداد در ثانیه) این کارو انجام بده مثلا 100 تا در ثانیه یا 1000 تا در ثانیه رو بتونه rename کنه حالا اومدم و این کارو انجام دادم ولی برنامه هنگ میکنه یعنی هرچقدر تعداد فایلها بیشتر میشه هنگ میکنه یعنی واسه 1000 فایل و اصلاً مشکلی نداره
void renameStart()
{
QString root ="E:/myfolder";
QDirIterator it(root,QStringList() << "*", QDir::Files, QDirIterator::Subdirectories);
while(it.hasNext();)
{
thread1 *myThread;
myThread = new thread1();
myThread->strpath = it.next();
myThread->start();
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFuture<void> future = QtConcurrent::run(renameStart);
future.waitForFinished();
return a.exec();
}
قطعه کدی چیزی نیست که بشه کاری کرد که برنامه کرش نشه؟