create_task 函数
创建一个 PPL 任务对象。 只要是在您会使用任务构造函数的地方都可以使用 create_task。 主要为了方便而提供,因为它允许在创建任务时使用 auto 关键字。
template<
typename _Ty
>
__declspec(
noinline
) auto create_task(_Ty _Param, const task_options& _TaskOptions = task_options()) -> task<typename details::_TaskTypeFromParam<_Ty>::_Type>;
template<
typename _ReturnType
>
__declspec(
noinline
) task<_ReturnType> create_task(const task<_ReturnType>& _Task);
参数
_Ty
从中构造任务的参数的类型。_ReturnType
_Param
从中构造任务的参数。 如果您使用 Windows 应用商店应用中的任务,则这可能是 lambda、函数对象、 task_completion_event 对象,另一个 task 对象,或 Windows::Foundation::IAsyncInfo 接口。_TaskOptions
_Task
返回值
从 _Param 上推断的 T 类型的新任务。
备注
第一个重载的行为与采用单个参数的任务构造函数类似。
第二个超负载关联了提供新创建任务的取消标记。 如果使用此重载,在不同的 task 对象中将不允许您作为第一个参数传递。
返回任务类型是从函数的第一个参数推断的。 如果 _Param 是 task_completion_event<T>、task<T> 或返回 T 或 task<T> 类型的仿函数,创建的任务的类型将为 task<T>。
在 Windows 应用商店应用中,如果 _Param 是 Windows::Foundation::IAsyncOperation<T>^ 或 Windows::Foundation::IAsyncOperationWithProgress<T、P>^ 的类型,或为返回这两个类型的仿函数,则创建的任务将为 task<T> 类型。 如果 _Param 是 Windows::Foundation::IAsyncAction^ 或 Windows::Foundation::IAsyncActionWithProgress<P>^ 的所属类型,或是返回所有这些类型的仿函数,创建的任务将具有 task<void> 类型。
要求
**标头:**ppltasks.h
**命名空间:**并发