Switch from QtConcurrent::run to QThreadPool::start QtConcurrent doesn't give us anyway to cancel queued but not started tasks. QThreadPool does (and also allows us to specify task priority)