Учитывая, что ReportModel
, скорее всего, класс, используемый из потока GUI, это не будет работать и является плохой идеей.this->moveToThread(...)
обычно является неприятным запахом кода, если вы точно не знаете, что делаете.
Почему вы перемещаете модель в поток в слоте?Разве это не должно быть в потоке с самого начала?Почему вы подключаете слоты к сигналу started
?Идиома для передачи задания в цикл событий текущего потока объекта может быть QTimer::singleShot(0, ...)
или QMetaObject::invoke
, и это работает без какой-либо зависимости от потока, начинающегося в этот самый момент.Скорее всего, exportProg
должен быть потокобезопасным методом, который можно передать для асинхронного выполнения через QtConcurrent::run
.