Межпоточное взаимодействие (Qt 4.3.3) |
Здравствуйте, гость ( Вход | Регистрация )
Межпоточное взаимодействие (Qt 4.3.3) |
flankerr |
24.3.2009, 17:04
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
Qt 4.3.3
Есть класс А объект которого создан в главном потоке. Есть класс Б объект которого работает в контексте другого потока. Сигнал класса Б связан со слотом класса А. Объект класса Б генерит сигнал, в ответ на это запускается слот объекта А Теперь внимание вопрос. В контексте какого потока будет вызван слот объекта класса А ??? |
|
|
BRE |
24.3.2009, 17:14
Сообщение
#2
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
flankerr |
24.3.2009, 17:22
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
кто создан? слот?
Т.е. если объект класса со слотом в первом потоке, а объект класса вызвавший сигнал во втором потоке, то слот вызовёться в контексте первого потока (где создан объект класса обладающего слотом) - правельно понимаю ? Сообщение отредактировал flankerr - 24.3.2009, 17:24 |
|
|
BRE |
24.3.2009, 17:23
Сообщение
#4
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
flankerr |
24.3.2009, 17:32
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
ну т.е. моё предыдущие утверждение верно?
тогда другой вопрос - это утверждение верно только если объект посылающий сигнал создан от клаасса унаследованного от QThread ? или (ну а вдруг) прокатит множественное наследовнаие QObject для сигнала и некий другой класс потока (не Qt) ?? |
|
|
BRE |
24.3.2009, 17:41
Сообщение
#6
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
ну т.е. моё предыдущие утверждение верно? тогда другой вопрос - это утверждение верно только если объект посылающий сигнал создан от клаасса унаследованного от QThread ? или (ну а вдруг) прокатит множественное наследовнаие QObject для сигнала и некий другой класс потока (не Qt) ?? Есть два объекта, например наследника от Object, созданные в контекстах двух разных потоках. Когда один объект посылает сигнал второму, происходит следующее: в очередь сообщений той нити, где находиться получатель сигнала, помещается специальное сообщение (QEvent::MetaCall), в котором содержиться информация для вызова слота. После переключения в контекст получателя (при обработке procrssEvents) происходит вызов данного слота. |
|
|
Текстовая версия | Сейчас: 30.12.2024, 17:29 |