Существует мир различий между двумя вариантами, которые вы обсуждаете.
Мой опыт был -
- Для функций, выполнение которых не занимает много времени, а поток графического интерфейса не очень занят, используйте сигналы и слоты. Это самый простой.
- Если ваша задача дольше выполняется, тогда вы можете использовать QConcurrent / QFutureWather, как предложено SB.
- Вы также можете посмотреть, используя QThread или QThreadPool .
У вас есть как минимум 3 варианта, если вам нужно многопоточность (используя только Qt). Каждый подход несколько отличается в том, как они работают и каковы их накладные расходы. Реальный выбор должен быть сделан на том, как вы используете многопоточность в остальной части вашего приложения.