В потоковых классах вводится приватная переменная volatile bool stopped; которая меняется в соответствующем методе void stop();,
переопределенный метод QTread::run(); выполняется до тех пор пока stopped = true, как только false заканчиваем выполнение run потока, поток закрываем.
правильно
Но честно говоря пользоваться такой конструкцией неудобно, приходится тащить volatile bool stopped и void stop(); во все функции и методы которые используются при расчетах
может быть проверять stopped только в некоторых контрольных точках, чтобы уменьшить количество мест проверки
Я пытался останавливать поток с расчетами через terminated();, через quit();, вроде бы он прибивается вот только на загрузку процессора смотрю она как была 100% так и осталась, и дебагг пишет "QTread: Destroyed while tread is stil running", т.е. получается что я его прибил но он все равно выполняется ?
QThread::terminate() должно работать, под виндой по крайней мере работает. Если не работает, попробуйте QThread::setTerminationEnabled(true)