Слоты и Потоки |
Здравствуйте, гость ( Вход | Регистрация )
Слоты и Потоки |
Litkevich Yuriy |
5.11.2008, 15:46
Сообщение
#21
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
kuler |
5.11.2008, 15:51
Сообщение
#22
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
|
|
|
Litkevich Yuriy |
5.11.2008, 16:06
Сообщение
#23
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
где написано? Впервые про это прочитал у Шлее, наскору руку нашел вот и в Асистенте:Цитата If you are using multiple inheritance, moc assumes that the first inherited class is a subclass of QObject. Also, be sure that only the first inherited class is a QObject. Цитата Virtual inheritance with QObject is not supported.
|
|
|
kuler |
6.11.2008, 17:23
Сообщение
#24
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
2) Слот может быть вызван через механихм сигнал\слот. Тогда слот выполниться в главном потоке. Пример: void CxConnectionThread::run() { ... QTcpSocket sosket; ... connect(&sosket, SIGNAL(error ( QAbstractSocket::SocketError)), SLOT(connectionError( QAbstractSocket::SocketError))); ... } тута же в дочернем будет? сигнал onReadyRead будет выполнен в главном потоке, а не в том, в котором создавался сокет? нет а вообще есть такая тема: Qt supports three types of signal-slot connections: With direct connections, the slot gets called immediately when the signal is emitted. The slot is executed in the thread that emitted the signal (which is not necessarily the thread where the receiver object lives). With queued connections, the slot is invoked when control returns to the event loop of the thread to which the object belongs. The slot is executed in the thread where the receiver object lives. With auto connections (the default), the behavior is the same as with direct connections if the signal is emitted in the thread where the receiver lives; otherwise, the behavior is that of a queued connection. то бишь слот может вызываться и там или там |
|
|
kuler |
18.12.2008, 14:32
Сообщение
#25
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
а если делаешь emit то обработчик (в этом же потоке) выполняется после того как выполнится метод в котором вызван емит или сразу
.... емит 1 ..... 2 обработчик() { } последовательность исполнения кода 1-2 или 2-1 ? |
|
|
SABROG |
18.12.2008, 15:02
Сообщение
#26
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Слот вызовется сразу и вызов будет в том же потоке, что и вызывающий этот слот, не смотря на то, что слот может принадлежать другому потоку. Вообще на уровне системы нет никакой принадлежности участка кода к потокам, можно вызывать функции и методы из других потоков без проблем, выполнятся будет в том же потоке из которого был вызов.
Цитата последовательность исполнения кода 1-2 или 2-1 ? 1-2. Сначала сигнал потом слот. Короче схема такая. Сигнал из метода 1 вызывает сразу же метод 2 и возврат обратно в метод 1, га следующую строку после emit. Сообщение отредактировал SABROG - 18.12.2008, 15:07 |
|
|
kuler |
18.12.2008, 15:37
Сообщение
#27
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
|
|
|
Litkevich Yuriy |
18.12.2008, 15:49
Сообщение
#28
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
kuler, как я понял для случая однопоточного приложения запись
Аналогична вызову функции FooSignal(...) через указатель на функцию, если настройки соединения (QObject::connect) умалчиваемые. |
|
|
kuler |
18.12.2008, 16:34
Сообщение
#29
|
Танцор диско Группа: Участник Сообщений: 441 Регистрация: 11.9.2008 Из: Москва Пользователь №: 289 Спасибо сказали: 6 раз(а) Репутация: -1 |
|
|
|
Litkevich Yuriy |
18.12.2008, 17:04
Сообщение
#30
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 23.1.2025, 1:23 |