共用方式為


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
    從中要建構工作的參數。 這可以是 Lambda、函式物件、task_completion_event<result_type> 物件或 Windows::Foundation::IAsyncInfo (如果您在 Windows 市集應用程式中使用工作)。 Lambda 或函式物件應該是相當於 std::function<X(void)> 的類型,其中 X 可以是類型 result_typetask<result_type> 或 Windows::Foundation::IAsyncInfo (在 Windows 市集應用程式中) 的變數。

  • _TaskOptions
    工作選項包括取消語彙基元、排程器等等

  • _Other
    來源 task 物件。

備註

出現 task 的預設建構函式,只是為了讓工作在容器內使用。 只有在指派有效的工作給預設建構的工作之後,您才能使用它。 在預設建構的工作上呼叫 getwaitthen 等方法時,這類方法會擲回 invalid_argument 例外狀況。

task_completion_event 建立的工作會在工作完成事件已設定時完成 (並排定其接續)。

接受取消語彙基元的建構函式版本會建立可以透過使用 cancellation_token_source (語彙基元取得來源) 取消的工作。 在沒有取消語彙基元的情況下建立的工作,無法取消。

當被封入的 Windows 執行階段非同步作業或動作完成時,從 Windows::Foundation::IAsyncInfo 建立的工作或傳回 IAsyncInfo 介面的 Lambda 會到達其終止狀態。 同樣地,從傳回 task<result_type> 的 lamda 建立的工作,在內部工作到達終止狀態時,而不是在 lamda 傳回時,到達其終止狀態。

task 的行為就像智慧型指標,可透過傳值方式安全傳遞。 它可以由多個執行緒存取,而不需要鎖定。

接受 Windows::Foundation::IAsyncInfo 介面的建構函式多載或傳回這類介面的 Lambda 只讓 Windows 市集應用程式使用。

如需詳細資訊,請參閱工作平行處理原則 (並行執行階段)

需求

**標頭:**ppltasks.h

**命名空間:**concurrency

請參閱

參考

task 類別 (並行執行階段)