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


async - функция

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

template<class Fn, class... ArgTypes>
   future<typename result_of<Fn(ArgTypes...)>::type>;
      async(Fn&& fn, ArgTypes&&... args);
template<class Fn, class... ArgTypes>
   future<typename result_of<Fn(ArgTypes...)>::type>;
      async(launch policy, Fn&& fn, ArgTypes&&... args);

Параметры

Заметки

Определения форм:

dfn

Результат вызова метода decay_copy(forward<Fn>(fn)).

dargs

Результаты вызова decay_copy(forward<ArgsTypes>(args…)).

Ty

Тип result_of<Fn(ArgTypes…)>::type.

Первая шаблонная функция возвращает async(launch::any, fn, args…).

Вторая функция возвращает объект future<Ty>, который содержит результат , связанные асинхронное состояние вместе с значениями dfn и dargs и объектом потока для управления отдельный поток выполнения.

Если decay<Fn>::type не имеет тип, отличный от запуска, вторая функция не участвует в разрешении перегруженной.

Если policy имеет значение launch::any, то функция может выбрать launch::async или launch::deferred.В этой реализации, используется функция launch::async.

Если policy имеет значение launch::async, то функция создает поток, который принимает INVOKE(dfn, dargs..., Ty).Функция возвращает после того, как она создает поток без ожидания результатов.Если система не может запустить новый поток, функция создает system_error, содержащий код ошибки resource_unavailable_try_again.

Если policy имеет значение launch::deferred, то функция помечает связанным асинхронное состояние хранения Функция deferred и возвращает.Первый вызов любой не синхронизированной функции, ожидает связанных асинхронное состояние, чтобы быть готова фактически отложенная вызывает функцию с вычисления INVOKE(dfn, dargs..., Ty).

Во всех случаях, связанное асинхронное состояние объекта future не задано , чтобы подготовка до тех пор, пока не завершится вычисление INVOKE(dfn, dargs…, Ty) или путем создания исключения или путем возвращения в обычном режиме.Результат связанного асинхронного состояния исключение, если оно было создано, или любое значение, возвращаемое вычислением.

Псевдодомен функция INVOKE определена в <functional>.

Требования

Возможные Заголовок:

Пространство имен: std

См. также

Ссылки

<future>

result_of Class

будущий класс

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

Файлы заголовков