Доброго времени суток, уважаемые участники форума!
Столкнулся с непонятной проблемой. А может и не проблемой вовсе. Имеется GUI-приложение. По нажатию на кнопку создаётся отдельный поток, в котором выполняется длительное действие.
Вот примерный код того, как организуется запуск отдельного потока:
auto thread = new QThread;
myObj = new MyObject();
myObj->moveToThread(thread);
connect(myObj,SIGNAL(finished()),thread,SLOT(quit()));
connect(thread,SIGNAL(finished()),thread,SLOT(deleteLater()));
connect(thread,SIGNAL(started()),myObj,SLOT(start()));
thread->start();
Ничего необычного, всё стандартно.
А наблюдаю следующую картину: при минимизации (Minimize) приложения время работы операции в созданном потоке увеличивается, если приложение не "сворачивать", то приложение работает быстрее.
Не могу понять в чём дело. Возможно это связано с приоритетами потоков в системе и при "сворачивании" приложения приоритет потока понижается и ему отдаётся меньшее кол-во процессорного времени. Тогда почему другие программы в "свёрнутом" состоянии работают также быстро? Запускал какой-то инсталлятор и время его работы всегда было одинаковым.
Кто-нибудь может подсказать в чем причина?