create_task 函式
建立 PPL task 物件。 您可以在任何會使用工作建構函式的地方使用 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
從中要建構工作的參數。 這可以是 Lambda、函式物件、task_completion_event 物件、不同的 task 物件或 Windows::Foundation::IAsyncInfo 介面 (如果您在 Windows 市集應用程式中使用工作)。_TaskOptions
_Task
傳回值
T 類型的新工作,從 _Param推斷出來的。
備註
第一個多載的行為就像接受單一參數的工作建構函式一樣。
第二個多載會將提供的取消語彙基元與新建立的工作產生關聯。 如果您使用這個多載,則不能在不同的 task 物件中做為第一個參數傳遞。
傳回的工作類型是從函式的第一個參數推斷而來。 如果 _Param 是 task_completion_event<T>、task<T> 或傳回 T 或 task<T> 類型的仿函數時,所建立工作的類型會是 task<T>。
在 Windows 市集應用程式中,如果 _Param 屬於類型 Windows::Foundation::IAsyncOperation<T>^ 或 Windows::Foundation::IAsyncOperationWithProgress<T,P>^,或者是傳回這些類型的函式物件 (functor),則建立的工作會是 task<T> 類型。 如果 _Param 屬於 Windows::Foundation::IAsyncAction^ 或 Windows::Foundation::IAsyncActionWithProgress<P>^ 類型,或是傳回上述任一類型的仿函數,則建立的工作會是 task<void> 類型。
需求
**標頭:**ppltasks.h
**命名空間:**concurrency