共用方式為


structured_task_group::run_and_wait 方法

排程工作以內嵌方式執行於呼叫內容,並以 structured_task_group 物件協助支援完整的取消作業。 如果將 task_handle 物件做為參數傳遞到 run_and_wait,呼叫端會負責管理 task_handle 物件的存留期。 函式接著會等候直到 structured_task_group 物件上的所有工時已完成或取消。

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

備註

請注意,一或多個排程至此 structured_task_group 物件的工作可以在呼叫內容上內嵌執行。

如果排程至此 structured_task_group 物件的一或多個工作擲回例外狀況,執行階段會選取其中一個例外狀況,並將它傳播至 run_and_wait 方法以外。

此函式傳回後,就會認定 structured_task_group 物件處於最終狀態而不會再使用。 請注意,在 run_and_wait 方法傳回後使用將會導致未定義的行為。

在執行的非例外狀況路徑中,您必須先呼叫這個方法或 wait 方法, structured_task_group 的解構函式才能執行。

需求

標頭: ppl.h

**命名空間:**concurrency

請參閱

參考

structured_task_group 類別

structured_task_group::run 方法

structured_task_group::wait 方法

概念

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