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> 或傳回 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

請參閱

參考

concurrency 命名空間

task 類別

概念

工作平行處理原則 (並行執行階段)