Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > moveToThread(...)


Автор: sergey_85 8.5.2010, 09:21
Привет!

В потоке получаю список объектов и возвращаю их через параметр (по указателю) в главный поток приложения


но вот беда возвращаемые из потока объекты наследованы от QObject и в консоль выводится сообщение 
QObject::setParent: Cannot set parent, new parent is in a different thread
объект не может сменить родителя, по умолчанию родитель = 0


Как решить?

Автор: djamshud 8.5.2010, 10:27
QObject::moveToThread  перемещает цикл обработки событий объекта в указанный поток. Если родитель у объекта есть, то перемещение невозможно. Как я понял, вам нужно сначала отправить свой объект в поток предполагаемого нового родителя, потом уже делать setParent.

Добавлено через 2 минуты и 58 секунд
И немаловажно:

Цитата

Warning: This function is not thread-safe; the current thread must be same as the current thread affinity. In other words, this function can only "push" an object from the current thread to another thread, it cannot "pull" an object from any arbitrary thread to the current thread.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)