Описание тега packaged-task

NoneStd::packaged_task<> - это шаблон класса, представленный с функцией многопоточности C++ 11. Этот тег следует использовать для вопросов, касающихся шаблона класса C++ и его использования с многопоточностью C++ и сопрограммами. Также следует указать используемый стандарт C++ (C++11/14/17/20). Шаблон класса используется для обертывания вызываемой сущности (лямбда, функция и т. Д.) Для создания асинхронной задачи.

std::packaged_task<>- это шаблон класса, представленный в стандарте C++11, который является частью многопоточности, представленной в этой версии стандарта. Это требует использования#include <future> компилировать.

Цель std::packaged_task<>заключается в создании асинхронной задачи, которая затем может использоваться с другими функциями многопоточной библиотеки C++ для управления. Вы можете использоватьstd::future<> чтобы получить результат асинхронной задачи.

Вы также можете использовать std::packaged_task<> вместе с его get_future() метод с предложенным co_await оператор сопрограмм C++20.

Использовать std::packaged_task<> требует двух шагов: создать упакованный объект задачи и вызвать объект, чтобы запустить его.

Дополнительное чтение

В чем разница между packaged_task и async

Что такое std:: обещание?

Что такое лямбда-выражение в C++11?

Что такое семантика перемещения?