![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Здравствуйте.
Нет ли стандартного способа вызвать функцию по окончании работы функции, переданной в async? Желательно, чтобы в функцию-уведомление передалось бы в качестве параметра возвращаемое значение функции из async. Спасибо. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
стандартного - нет.
но можно передать свой функциональный объект с operator(), который будет вызывать связанную с ним функцию-уведомитель по завершению функции-задачи. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
||||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Я тут повелосипедировал немного... Глянешь на досуге ? Покритикуешь ?
http://liveworkspace.org/code/5f5fc2a2f050...53d8d49fddc85b9 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
borisbn, так а цель была, уйти от явного использования bind() ?
|
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Ага. В том числе. Хочу, чтобы мои функции выглядели для пользователя как тот же std::thread или std::async... К тому же если рабочая функция возвращает значение, то функции-уведомлению нужно делать std::bind с placeholder'ом, а если нет - то без него. А так получается единообразно. Ну, а основная цель - сделать async-вызов с уведомлением. В принципе, я её достиг, но меня смущает то, что пользователь должен получать std::future и в конце программы (например, в деструкторе основного класса) ожидать её. Хотелось бы и этот процесс автоматизировать, но я пока не придумал как. Есть идея создать статический глобальный класс, который будет получать эти future'зы, складывать в список, а в своём деструкторе - ждать всех по-очереди... Бррр... самому не нравится -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |