Когда следует использовать QThread и когда QRunnable?
Ответ 1
Класс QRunnable и функция QtConcurrent::run() хорошо подходят для ситуаций, когда мы хотим выполнить некоторую фоновую обработку в одном или нескольких
вторичные потоки, не требующие полной мощности и гибкости, обеспечиваемые
QThread.
из "Расширенное программирование Qt: создание отличного программного обеспечения с С++ и Qt 4" от Mark Summerfield