![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Алексей1153 |
![]()
Сообщение
#1
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
Вопрос: когда сигнал и слот имеют аргументы по значению (то есть, не указатели и не ссылки), нужно ли выполнять межпоточную синхронизацию, если я из одного потока шлю сигнал в слот другого? Понимаю, что глупый вопрос, поэтому задам его по-другому: в каких случаях при использовании сигнала в одном потоке и слота в другом требуется синхронизация ? Ситуация простейшая - передаю, к примеру, QString по значению из потока в поток Сообщение отредактировал Алексей1153 - 23.1.2013, 8:23 |
|
|
![]() |
ssoft |
![]()
Сообщение
#2
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 130 Регистрация: 17.2.2010 Из: Москва Пользователь №: 1470 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
1. Если передача параметров происходит по значению.
то при асинхронном вызове (через очередь сообщений), передаваемые данные копируются и синхронизировать ничего не нужно. 2. Если передача параметров происходит по указателю по не константной ссылке.
то при асинхронном вызове копируется значение указателя (ссылки), за существование объекта QString и синхронизацию доступа к нему отвечает сам программист. Сообщение отредактировал ssoft - 24.1.2013, 9:04 |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 8:15 |