![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
xbarmaglot |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Никак не могу понять как реализуют асинхронную работу.
Пусть есть канал, через который принимаются и отправляются данные. Если бы было синхронно, то работа примерно такая
То есть вызывается синхронный метод, который возвращает результат. В зависимости от результата принимается решение о том, что далее делать. А вот если работа асинхронная, то не понятно как обрабатывать результаты. То есть invoke_method не возвращает результат, а от приходит, например, в другом слоте. З.Ы. Не совсем понятно как быть, если выполнение функции - это последовательность из нескольких методов, которые должны последовательно отработать. Как это будет выглядеть ? |
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
если в общем, в принимающем слоте делается проверка - отсылали ли такой запрос, для которого пришёл ответ (а иногда проверка и не нужна). Маркировка- каким-нибудь уникальным в пределах сессии id
|
|
|
xbarmaglot |
![]()
Сообщение
#3
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
если в общем, в принимающем слоте делается проверка - отсылали ли такой запрос, для которого пришёл ответ (а иногда проверка и не нужна). Маркировка- каким-нибудь уникальным в пределах сессии id Ну допустим, вызываем 1 метод
в слоте пришел ответ
Где вызывать metod2, если результат успешный? |
|
|
RazrFalcon |
![]()
Сообщение
#4
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Не совсем понял, но есть функция sender(), которая возвращает указатель на класс из которого был прислан сигнал в этот слот.
|
|
|
xbarmaglot |
![]()
Сообщение
#5
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#6
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
xbarmaglot |
![]()
Сообщение
#7
|
Студент ![]() Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#8
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
да чего там разбираться то. Как спроектируешь систему, так и будет работать
Что именно смущает то ? |
|
|
Sokoloff |
![]()
Сообщение
#9
|
Участник ![]() ![]() Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: ![]() ![]() ![]() |
очевидно, что в my_slot() этого я и боялся. Если методов десятки, а слот обработки результата один ? Это такой крокодил получится, что разобраться в нем можно будет только один раз - при написании. А кто сказал что он должен быть один?
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 9:51 |