У меня вопрос, я пытаюсь найти самый простой способ (без eventl oop и или QFutureWatcher) запустить функцию в другом потоке, не блокируя gui. У меня есть объект экспортера из другой библиотеки, я не могу его изменить, и его функция Close () закрывается примерно за 15 секунд.
Так что я попробовал этот трюк ниже, но он работает только в течение нескольких секунд, но затем функциональные блоки processEvents () до завершения функции экспорта, что делает ее бесполезной.
Мой код:
QFuture<void> future = QtConcurrent::run([&]() {exporter.Close();
qDebug() << "closed!";});
while (!future.isFinished())
{
QApplication::processEvents();
QThread::msleep(1); //yield
qDebug() << "z";
}