Как делиться зависимостями в составленных операциях ASIOC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как делиться зависимостями в составленных операциях ASIO

Сообщение Anonymous »

Этот вопрос сбил меня за проблемой, упомянутой в комментариях: < /p>

@sehe use_promise < /code> кажется очень интересным. Я посмотрел немного документации
и нашел некоторые из ваших постов, как это. Но
Как я мог подражать Boost :: wait_for_all с помощью use_promise ? Похоже, что
также проблема с тем, чтобы иметь две задачи, ожидающие, пока одна задача
. - Yzedwin прокомментировал вчера < /p>
Вы можете сделать группу асинхронных операций (

Код: Выделить всё

make_parallel_group
) и
затем инициируйте его с помощью use_promise . Кстати,

Код: Выделить всё

experimental::promise< /code> особенно универсален, потому что обещание
operator()
делает это также асинхронизированной операцией, поэтому она может быть сгруппирована/сгруппирована/отложена - SEHE прокомментировано вчера
@sehe i, наконец, получил use_promise Работая с Make_parallel_group .
Я использовал ASIO :: DEFERRED до. Я предполагаю, что use_promise < /code> больше
, как и нетерпеливая оценка? Но все же самая большая проблема - это разбивание. Например,
У меня есть две независимые задачи A и B, которые оба полагаются на задачу C
, чтобы закончить. Все три события должны выполняться только один раз. Это можно легко сделать
с помощью Boost :: shared_future < /code>, так как я мог бы просто передать

Код: Выделить всё

shared_future
задания C to then () задания A и B. Но если i
используйте co_spawn и обе задачи co_await задача C, задача C будет выполнена дважды. -Yzedwin прокомментировал 20 часов назад

Точка общей зависимости от общей зависимости: Asio :: Experimental :: Order и не может дождаться дважды. В этом отношении это больше похоже на обернутую асинхронную операцию (согласно проверке концепции is_async_operation ).
  • Можем ли мы обернуть обещание в копируемый/общий тип обещания? /> Экспериментальный :: Обещание даже требуется?


Подробнее здесь: https://stackoverflow.com/questions/797 ... operations
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»