Reworked to use a QRunnable and QThreadPool