task_group::run_and_wait 方法
排程工作以內嵌方式執行於呼叫內容,並以 task_group 物件協助支援完整的取消作業。 函式接著會等候直到 task_group 物件上的所有工時已完成或取消。 如果將 task_handle 物件做為參數傳遞到 run_and_wait,呼叫端會負責管理 task_handle 物件的存留期。
template<
class _Function
>
task_group_status run_and_wait(
task_handle<_Function>& _Task_handle
);
template<
class _Function
>
task_group_status run_and_wait(
const _Function& _Func
);
參數
_Function
欲叫用以執行工作主體之函式物件的型別。_Task_handle
工作控制代碼,將會在呼叫內容上內嵌執行。 請注意,呼叫端必須負責此物件的存留期。 執行階段會繼續預期它存留,直到 run_and_wait 方法完成執行為止。_Func
用於叫用工作本體的函式。 這可能是 Lambda 運算式或其他支援函式呼叫運算子與簽章 void operator()() 版本的物件。
傳回值
表示已完成等候或工作群組已取消,原因是明確取消作業或從其中一個工作擲回例外狀況。 如需詳細資訊,請參閱 task_group_status。
備註
請注意,一或多個排程至此 task_group 物件的工作可以在呼叫內容上內嵌執行。
如果排程至此 task_group 物件的一或多個工作擲回例外狀況,執行階段會選取其中一個例外狀況,並將它傳播至 run_and_wait 方法以外。
從 task_group 物件上的 run_and_wait方法傳回時,執行階段會將物件重設為清除狀態,以重複使用。 這包括 task_group 物件已取消的情況。
在執行的非例外狀況路徑中,您必須先呼叫這個方法或 wait 方法, task_group 的解構函式才能執行。
需求
標頭: ppl.h
**命名空間:**concurrency