Потребовалось мне сделать выполнение в отдельном потоке, и начал разбирать что к чему. Может ли мне кто объяснить, зачем нужен moveToThread? Что за родственность (affinity) меняется при его выполнении? Ведь если нить создается в текущем процессе, то память у нее общая и доступная в текущим процессе. Или без этого метод объекта, который туда не перемещен не будет выполняться в той нити? И одновременный доступ к свойствам все равно нужно контролировать через мютексы. На что влияет это перемещение?
QThread* th = new QThread;
MyObject* obj = new MyObject;
obj->moveToThread(th);
obj->doSomeThing();
такая вещь по прежнему может выполняться в текущей нити, несмотря на то что я сказал объекту переместиться в другую нить.