Название: Процессы/потоки, Сигнально-слотовые соединения Отправлено: sunjob от Январь 30, 2022, 15:46 Цитировать конспект: Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010 Процессы/потоки Сигнально-слотовые соединения мы можем взять сигнал объекта одного потока и соединить его со слотом объекта другого потока. соединение при помощи метода connect() предоставляет дополнительный параметр режима обработки. Этот параметр по умолчанию имеет значение Qt::AutoConnection, что соответствует автоматическому режиму. Как только происходит высылка сигнала, Qt проверяет, происходит связь в одном и том же или в разных потоках. Если это - один и тот-же поток, то высылка сигнала приведет к прямому вызову метода. - разные потоки, сигнал будет преобразован в событие и доставлен нужному объекту. вы можете высылать сигналы и получать их, не заботясь о блокировке ресурсов. Вы можете перемещать объект, созданный в одном потоке, в другой, обработка будет произведена "правильно" не понятно, что значит: - не заботясь о блокировке ресурсов (а если к ресурсу будет нужен множественный доступ? mutex- semaphore?) - обработка будет произведена "правильно" (что значить правильно? а может быть еще и не правильно?) Код: slackware 12.2 спасибо Название: Re: Процессы/потоки, Сигнально-слотовые соединения Отправлено: qtkoder777 от Апрель 11, 2022, 16:26 Лучше убиться сразу. Сигнал-слот нормально работает в одном потоке. Как сигнал-слот работают между потоками сами разработчики QT не понимают. В QT-5 эта проблема не решена.
Название: Re: Процессы/потоки, Сигнально-слотовые соединения Отправлено: Igors от Апрель 12, 2022, 13:53 Лучше убиться сразу. Сигнал-слот нормально работает в одном потоке. Как сигнал-слот работают между потоками сами разработчики QT не понимают. В QT-5 эта проблема не решена. Нет никакой проблемы, все работает и сделано удобно |