Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Межпоточное взаимодействие (Qt 4.3.3)
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
flankerr
Qt 4.3.3
Есть класс А объект которого создан в главном потоке. Есть класс Б объект которого работает в контексте другого потока. Сигнал класса Б связан со слотом класса А.
Объект класса Б генерит сигнал, в ответ на это запускается слот объекта А
Теперь внимание вопрос.

В контексте какого потока будет вызван слот объекта класса А ???
BRE
Цитата(flankerr @ 24.3.2009, 17:04) *
В контексте какого потока будет вызван слот объекта класса А ???

В контексте той нити, где он создан.
flankerr
кто создан? слот?
Т.е. если объект класса со слотом в первом потоке, а объект класса вызвавший сигнал во втором потоке, то слот вызовёться в контексте первого потока (где создан объект класса обладающего слотом) - правельно понимаю ?
BRE
Цитата(flankerr @ 24.3.2009, 17:22) *
кто создан?

Объект, слот которого будет выполняться.
flankerr
ну т.е. моё предыдущие утверждение верно?

тогда другой вопрос - это утверждение верно только если объект посылающий сигнал создан от клаасса унаследованного от QThread ?
или (ну а вдруг) прокатит множественное наследовнаие QObject для сигнала и некий другой класс потока (не Qt) ??
BRE
Цитата(flankerr @ 24.3.2009, 17:32) *
ну т.е. моё предыдущие утверждение верно?

тогда другой вопрос - это утверждение верно только если объект посылающий сигнал создан от клаасса унаследованного от QThread ?
или (ну а вдруг) прокатит множественное наследовнаие QObject для сигнала и некий другой класс потока (не Qt) ??

Есть два объекта, например наследника от Object, созданные в контекстах двух разных потоках.
Когда один объект посылает сигнал второму, происходит следующее:
в очередь сообщений той нити, где находиться получатель сигнала, помещается специальное сообщение (QEvent::MetaCall), в котором содержиться информация для вызова слота. После переключения в контекст получателя (при обработке procrssEvents) происходит вызов данного слота.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.