![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
![]()
Здравствуйте,
Пытаюсь хоть сколько нибудь понять пример асинхронного клиента с сайта boost: https://www.boost.org/doc/libs/1_40_...ync_client.cpp Приведу только часть которую я не понял, на самом деле я вообще ниче не понял, так как застрял уже на функции ассинхронного резолва ![]() Код:
Код:
![]() Почему нельзя просто дать async_resolve сам запрос query и обьект ошибки ?? ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,357
|
![]()
В асинхронном тоже за скидкой на асинхронность. Вам бы что-нибужь прочитать про асинхронности, колбеки и т.д.
В справке он есть, в STL свои тоже есть. Для связывание первого параметра метода с this как минимум. Это колбек. На них часто строится асинхронность. Потому что вы выдрали кусок кода из примера, в котором резолвится имя и подключаются к нему. Там же даже комментарий есть. Так резолвите... Потому что это асинхронная функция и ей нужен колбек, чтобы вас известить. Хотя по сути ей так и передается запрос и место для ошибки. |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,357
|
![]()
Ну вы же бред написали. Если хотите синхронности, пишите синхронные методы. Асинхронный метод отработает и позовет ваш колбек с результатом, когда закончит.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
![]()
Подскажите пожалуйста, ну в чем бред ?
Ну пусть асинхронный метод отработает и позовет ваш колбек с результатом, когда закончит, но код даже не запускается. Серьезно не понимаю в чем ошибка ? |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,357
|
![]()
Значит вы просто не знаете разницы между синхронным и асинхронным кодом.
Код:
Что произойдет в момент resolvers.async_resolve? Просто запустится функция и управление сразу вернется. Что должно присвоится iteratorka, если код функции, возможно, даже еще не начал выполняться? Я еще раз повторю: любо сначала разбиритесь что вообще такое асинхронность, либо просто пишите синхронный код, т.к. по вашему коду не видно нафига вам вообще асинхронность... |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
![]() Цитата:
Ну по идее это может быть должен быть некий кол-бэк, по которому будет прерывание, и весь остальной код встанет на паузу и управление опять вернется к async_resolve. Блин я запутался ((( |
|
![]() |
![]() |
![]() |
#8 | ||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,357
|
![]() Цитата:
Код:
Цитата:
Вы сейчас описали вариант реализации через фьюче и промис. Только зачем опять возвращаться к async_resolve? |
||
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
![]() |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 26.08.2010
Сообщений: 121
|
![]()
А я немного(много) не пойму:
Код:
А не err, не endpoint_itetator не созданы, как тогда они передаются ? |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Boost] ASIO Buffer | S.Ruslan | C/C++ Сетевое программирование | 7 | 25.03.2019 13:34 |
boost/asio | MayhemWithMercy | C/C++ Сетевое программирование | 1 | 11.06.2014 17:44 |
boost ASIO сериализация | Kukurudza | Общие вопросы C/C++ | 2 | 06.12.2011 13:38 |
Boost::Asio on Mingw | russian-stalker | Общие вопросы C/C++ | 0 | 05.01.2011 16:27 |
Boost (asio + thread) - noncopyable | MInner | Общие вопросы C/C++ | 1 | 06.12.2009 16:41 |