Асинхронная работа |
Здравствуйте, гость ( Вход | Регистрация )
Асинхронная работа |
xbarmaglot |
6.10.2012, 12:54
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: 0 |
Никак не могу понять как реализуют асинхронную работу.
Пусть есть канал, через который принимаются и отправляются данные. Если бы было синхронно, то работа примерно такая
То есть вызывается синхронный метод, который возвращает результат. В зависимости от результата принимается решение о том, что далее делать. А вот если работа асинхронная, то не понятно как обрабатывать результаты. То есть invoke_method не возвращает результат, а от приходит, например, в другом слоте. З.Ы. Не совсем понятно как быть, если выполнение функции - это последовательность из нескольких методов, которые должны последовательно отработать. Как это будет выглядеть ? |
|
|
Алексей1153 |
7.10.2012, 13:48
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
если в общем, в принимающем слоте делается проверка - отсылали ли такой запрос, для которого пришёл ответ (а иногда проверка и не нужна). Маркировка- каким-нибудь уникальным в пределах сессии id
|
|
|
xbarmaglot |
7.10.2012, 15:02
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: 0 |
если в общем, в принимающем слоте делается проверка - отсылали ли такой запрос, для которого пришёл ответ (а иногда проверка и не нужна). Маркировка- каким-нибудь уникальным в пределах сессии id Ну допустим, вызываем 1 метод
в слоте пришел ответ
Где вызывать metod2, если результат успешный? |
|
|
RazrFalcon |
7.10.2012, 21:51
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Не совсем понял, но есть функция sender(), которая возвращает указатель на класс из которого был прислан сигнал в этот слот.
|
|
|
xbarmaglot |
7.10.2012, 21:54
Сообщение
#5
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Алексей1153 |
8.10.2012, 18:38
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
xbarmaglot |
8.10.2012, 20:44
Сообщение
#7
|
Студент Группа: Новичок Сообщений: 14 Регистрация: 29.8.2012 Пользователь №: 3502 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Алексей1153 |
9.10.2012, 7:38
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
да чего там разбираться то. Как спроектируешь систему, так и будет работать
Что именно смущает то ? |
|
|
Sokoloff |
11.10.2012, 19:57
Сообщение
#9
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
очевидно, что в my_slot() этого я и боялся. Если методов десятки, а слот обработки результата один ? Это такой крокодил получится, что разобраться в нем можно будет только один раз - при написании. А кто сказал что он должен быть один?
|
|
|
Текстовая версия | Сейчас: 25.11.2024, 21:36 |