Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: ti0 от Ноябрь 06, 2017, 21:29



Название: Qt Properties thread safe?
Отправлено: ti0 от Ноябрь 06, 2017, 21:29
Нигде не могу насти в документации и гугле ответ на воспрос - потоко - безопасны ли свойства meta object system? Пишу многопоточное приложение с широким использованием properties, при этом мне нужно из одного потока менять свойства объекта, который находится в другом. Нужно ли мне дополнительно об этом заботится, например с помощью мьютексов?


Название: Re: Qt Properties thread safe?
Отправлено: qate от Ноябрь 07, 2017, 08:26
в документации qobject только сказано, что connect\disconnet являются thread-safe


Название: Re: Qt Properties thread safe?
Отправлено: Авварон от Ноябрь 07, 2017, 14:13
Да, нужно.
Но можно схитрить и сделать через посылку своего события - сделать статический метод setProperty(QObject *object, QByteArray property, QVariant value), который будет постить эвент объекту.
И где-нибудь в QApplication перегрузить notify (или повесить глобальный фильтр), который будет ловить этот эвент и делать object->setProperty (к этому моменту эвент будет в нужном потоке)