Приветствую!
Продолжаю дальше разгребаться с потоками...
В общем, есть класс MyClass
MyClass::MyClass(QObject * parent =0) {
_thread = new QThread(0); //-- поток не должен иметь родителя, что бы он не снёс его ненароком, пока выполняется
connect(_thread, &QThread::started, this, &MyClass::process); //-- при запуске потока сразу начинаем работу
moveToThread(_thread);
}
void MyClass::process()
{
myTimer = new QTimer(this);
....
}
void MyClass::stopTimer() {
myTimer->stop();
}
Т.е. таймер по идее я создаю уже внутри другого потока, внутри класса с таймером всё ок - остановка/запуск и т.д.
НО если попробовать вызвать stopTimer(); из основного потока, то возникает ошибка
QObject::killTimer: Timers cannot be stopped from another thread
Эм... Если делать это через сигнал/слот, то всё работает как надо, но смысла не вижу делать дополнительные соединения... Как можно из основного потока без сигнал/слотов остановить таймер?