Синхронизация при сигналах и слотах в разных потоках |
Здравствуйте, гость ( Вход | Регистрация )
Синхронизация при сигналах и слотах в разных потоках |
Алексей1153 |
22.1.2013, 12:59
Сообщение
#1
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Вопрос: когда сигнал и слот имеют аргументы по значению (то есть, не указатели и не ссылки), нужно ли выполнять межпоточную синхронизацию, если я из одного потока шлю сигнал в слот другого? Понимаю, что глупый вопрос, поэтому задам его по-другому: в каких случаях при использовании сигнала в одном потоке и слота в другом требуется синхронизация ? Ситуация простейшая - передаю, к примеру, QString по значению из потока в поток Сообщение отредактировал Алексей1153 - 23.1.2013, 8:23 |
|
|
Алексей1153 |
24.1.2013, 9:57
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
выходит, если указать Qt::QueuedConnection , то аргументы по значению можно передавать без синхронизации
а вот указатели на локальные данные при Qt::QueuedConnection точно нельзя по определению так, а это что за комиссия ) Цитата Qt::QueuedConnection 2 Слот вызывается когда элемент управления возвращает управление в цикл обработки событий в потоке получателя. Слот выполняется в потоке получателя. у меня поток не использует контролы и цикл обработки событий. Или это неважно ? Сообщение отредактировал Алексей1153 - 24.1.2013, 9:52 |
|
|
Текстовая версия | Сейчас: 25.11.2024, 16:18 |