Конструктор task::task
Создает объект task.
task();
template<
typename _Ty
>
__declspec(
noinline
) explicit task(_Ty _Param);
template<
typename _Ty
>
__declspec(
noinline
) explicit task(_Ty _Param, const task_options& _TaskOptions);
task(
const task& _Other
);
task(
task&& _Other
);
Параметры
_Ty
Тип параметра, из которого будет создаваться задача._Param
Параметр, из которого будет создаваться задача. Это может быть лямбда-выражение, объект функции, объект task_completion_event<result_type> или Windows::Foundation::IAsyncInfo, если задачи используются в приложении Магазина Windows. Лямбда-выражение или объект функции должны относиться к типу, эквивалентному std::function<X(void)>, где X может быть переменной типа result_type, task<result_type> или Windows::Foundation::IAsyncInfo в приложениях Магазина Windows._TaskOptions
Параметры задачи включают токен отмены, планировщик и др._Other
Исходный объект task.
Заметки
Конструктор по умолчанию для task присутствует только для того, чтобы задачи могли использоваться внутри контейнеров. Собранную задачу по умолчанию невозможно использовать до тех пор, пока ей не будет присвоена допустимая задача. Такие методы, как get, wait или then будут вызывать исключение invalid_argument при вызове для собранной задачи по умолчанию.
Задача, которая создается из task_completion_event, завершится (и ее продолжения будут запланированы), если событие завершения задачи установлено.
Версия конструктора, принимающего токен отмены, создает задачу, которую можно отменить с помощью cancellation_token_source, из которого был получен токен. Задачи, созданные без токена отмены, не могут быть отменены.
Задачи, созданные из интерфейса Windows::Foundation::IAsyncInfo или лямбда-выражения, которое возвращает интерфейс IAsyncInfo, достигают своего конечного состояния при завершении вложенной асинхронной операции или действия среды выполнения Windows. Аналогично, задачи, созданные из лямбда-выражения, которое возвращает task<result_type>, достигают своего конечного состояния, когда внутренняя задача достигает своего конечного состояние, а не когда лямбда-выражение выполняет возврат.
task ведет себя подобно интеллектуальному указателю, и ее можно безопасно передавать по значению. К ней также может быть получен доступ несколькими потоками без необходимости использования блокировки.
Перегрузки конструктора, которые принимают интерфейс Windows::Foundation::IAsyncInfo или лямбда-выражение, которое возвращает такой интерфейс, доступны только для приложений Магазина Windows.
Дополнительные сведения см. в разделе Параллелизм задач (среда выполнения с параллелизмом).
Требования
Заголовок: ppltasks.h
Пространство имен: concurrency