若要檢視英文版的文章,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文
建議使用 Visual Studio 2017

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 物件中做為第一個參數傳遞。

傳回的工作類型是從函式的第一個參數推斷而來。 如果 _Paramtask_completion_event<T>task<T> 或傳回 Ttask<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

顯示: