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_type、task<result_type> 或 Windows::Foundation::IAsyncInfo (在 Windows 市集應用程式中) 的變數。_TaskOptions
工作選項包括取消語彙基元、排程器等等_Other
來源 task 物件。
備註
出現 task 的預設建構函式,只是為了讓工作在容器內使用。 只有在指派有效的工作給預設建構的工作之後,您才能使用它。 在預設建構的工作上呼叫 get、wait 或 then 等方法時,這類方法會擲回 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