Russian Qt Forum
Март 29, 2024, 12:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Процессы/потоки, Сигнально-слотовые соединения  (Прочитано 1639 раз)
sunjob
Новичок

Offline Offline

Сообщений: 29


Просмотр профиля
« : Январь 30, 2022, 15:46 »

Цитировать
конспект:
Шлее М. Qt4.5 "Профессиональное программирование на C++" 2010
Процессы/потоки

Сигнально-слотовые соединения

мы можем взять сигнал объекта одного потока и соединить его со слотом объекта другого потока.
соединение при помощи метода connect() предоставляет дополнительный параметр режима
обработки. Этот параметр по умолчанию имеет значение Qt::AutoConnection,
что соответствует автоматическому режиму. Как только происходит высылка
сигнала, Qt проверяет, происходит связь в одном и том же или в разных потоках.

Если это
- один и тот-же поток, то высылка сигнала приведет к прямому вызову метода.
- разные потоки, сигнал будет преобразован в событие и доставлен нужному объекту.

вы можете высылать сигналы и получать их, не заботясь о блокировке ресурсов.

Вы можете перемещать объект, созданный в одном потоке, в другой, обработка будет произведена "правильно"

не понятно, что значит:
- не заботясь о блокировке ресурсов (а если к ресурсу будет нужен множественный доступ? mutex- semaphore?)
- обработка будет произведена "правильно" (что значить правильно? а может быть еще и не правильно?)

Код:
slackware 12.2
qt-4.8.7

спасибо
« Последнее редактирование: Январь 30, 2022, 16:18 от sunjob » Записан
qtkoder777
Частый гость
***
Offline Offline

Сообщений: 245


Просмотр профиля
« Ответ #1 : Апрель 11, 2022, 16:26 »

Лучше убиться сразу. Сигнал-слот нормально работает в одном потоке. Как сигнал-слот работают между потоками сами разработчики QT не понимают. В QT-5 эта проблема не решена.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Апрель 12, 2022, 13:53 »

Лучше убиться сразу. Сигнал-слот нормально работает в одном потоке. Как сигнал-слот работают между потоками сами разработчики QT не понимают. В QT-5 эта проблема не решена.
Нет никакой проблемы, все работает и сделано удобно
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.