Поделиться через


<future>

Включите стандартный заголовок <future> для определения классы-шаблоны и поддерживающие шаблоны, которые упрощают для выполнения функции — допустим в отдельных потоках и извлечь его результат. Результат любого значения, возвращаемого функцией или исключения, выдается функцией, но не уловлен в функции.

Этот заголовок используется среда выполнения с параллелизмом (ConcRT), чтобы можно было использовать его вместе с другими механизмами ConcRT. Дополнительные сведения о ConcRT см. в разделе Среда выполнения с параллелизмом.

#include <future>

Заметки

Примечание

В коде, компилироваться с помощью /clr или /clr:pure, этот заголовок блокируется.

асинхронный поставщик сохраняет результат вызова функции. возвращает асинхронное возражает используется для извлечения результат вызова функции. асинхронное состояние. обеспечивает связь между асинхронные поставщиком и одним или несколькими асинхронными возвращенными объектами.

Программа непосредственно не создает связанных асинхронные объекты состояния. Программа создает асинхронный поставщик, когда требуется одно и из него создает асинхронный возвращает объект, который использует связанным асинхронное состояние с поставщиком. Асинхронные поставщики и асинхронные возвращают объекты управляющих объектов, содержащих их общее связанных асинхронное состояние. Когда уничтожается последний объект, ссылающийся на полезные асинхронные выпуски состояния его, объект, содержащий связанное асинхронное состояние.

Асинхронный поставщик или асинхронный возвращает объект, который не имеет связанного с ним асинхронное состояние пустыми.

Связанное асинхронное состояние имеет значение ready, только если его асинхронный поставщик сохранил возвращаемое значение или исключение.

Шаблонная функция async и классы-шаблоны promise и packaged_task асинхронных поставщиков. Классы-шаблоны future и shared_future описывают асинхронные возвращают объекты.

Каждый из шаблонных классов promise, future и shared_future имеет специализацию для типа void и частично специализацию для хранения и извлечения значения по ссылке. Эти специализации отличаются от первичного шаблона только в сигнатурах и семантике функций, которые хранят и извлекает возвращаемое значение.

Классы-шаблоны future и shared_future никогда не блокируются на их деструкторах, за исключением одного варианта, сохраняется для обеспечения обратной совместимости. В отличие от других будущие, для future— либо последнее shared_future— это вложенное в задачу запущенной с std::async, блоки деструктора, если задача не завершена; то есть, если этот поток блокируется, пока не .get() или .wait() и задачи по-прежнему работают. В следующей полезности заметка была добавлена в описание std::async в стандарте черновика: «[Примечание. Если будущее предоставленное std::async остается локальной областью, другой код, который использует имя следующего имейте в виду, что требуется и гарантирован никогда не блокируется деструктор будущего может блокировать для общего состояния станет готовым. — конечная заметка]» во всех остальных случаях future и деструкторы shared_future.

Члены

Классы

Name

Описание

Класс future

Описывает асинхронный возвращенный объект.

Класс future_error

Описание объекта исключения, которое может быть возникает методами типов, управляющие объекты future.

Класс packaged_task

Описание поставщика, программа-оболочка асинхронного вызова, а сигнатура вызова Ty(ArgTypes...). Связанным асинхронное состояние содержит копию его можно вызвать объекта помимо потенциальному результату.

Класс promise

Описывает асинхронный поставщика.

Класс shared_future

Описывает асинхронный возвращенный объект. В отличие от объекта future, асинхронного поставщик можно связать с любым числом объектов shared_future.

Структуры

Name

Описание

Структура is_error_code_enum

Специализация, указывающую, что future_errc подходит для хранения error_code.

Структура uses_allocator

Специализация, всегда содержит значение true.

Функции

Name

Описание

Функция async

Представляет асинхронный поставщика.

Функция future_category

Возвращает ссылку на объект error_category, который характеризует ошибки, связанные с объектами future.

Функция make_error_code

Создает error_code которого объект error_category, который характеризует ошибки future.

Функция make_error_condition

Создает error_condition которого объект error_category, который характеризует ошибки future.

Функция swap (<future>)

Меняет местами. асинхронное состояние одного объекта promise с одним из других.

Перечисления

Name

Описание

Перечисление future_errc

Символические имена предоставляет для ошибок, которые предоставляются классом future_error.

Перечисление future_status

Символические имена предоставляет по причинам, синхронизированная продолжительность может возвращать.

Перечисление launch

Представляет тип битовой маски, который описывает возможные режимы для функции шаблона async.

См. также

Другие ресурсы

Файлы заголовков стандартных библиотек C++