共用方式為


task_group 類別

task_group 類別表示可以等候或取消的平行工作集合。

class task_group;

成員

公用建構函式

名稱

描述

task_group::task_group 建構函式

建構新的 task_group 物件。

task_group::~task_group 解構函式

終結 task_group 物件。 您應在解構函式執行前在物件上呼叫 waitrun_and_wait 方法,除非執行解構函式是因例外狀況而回溯堆疊的結果。

公用方法

名稱

描述

task_group::cancel 方法

儘可能取消以此工作群組為根的工作之樹狀子目錄。 如果可能,會以可轉移方式取消工作群組中所有排定的工作。

task_group::is_canceling 方法

會通知呼叫端目前是否正在取消工作群組。 這不一定表示在 task_group 物件上呼叫 cancel 方法 (雖然這樣一定可以讓此方法傳回 true)。 可能是 task_group 物件正以內嵌方式執行,而且已取消工作樹狀結構中的工作群組。 在這類的情況下,當執行階段可以預先判斷取消會流經這個 task_group 物件時,也會傳回 true

task_group::run 方法

多載。 在 task_group 物件上排程工作。 如果將 task_handle 物件做為參數傳遞到 run,呼叫端會負責管理 task_handle 物件的存留期。 將函式物件當成參數參考的方法的版本與執行階段中的堆疊配置有關,其效果可能不如使用參考 task_handle 物件的版本。

task_group::run_and_wait 方法

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

task_group::wait 方法

等候直到 task_group 物件上的所有工作皆已完成或取消。

備註

與嚴重限制的 structured_task_group 類別不同的是 task_group 類別是更一般的建構。 它並沒有任何 structured_task_group 所描述的限制。 您可以安全地跨執行緒使用 task_group 物件,並且自由利用。 task_group 建構的缺點是它可能無法像執行少量工作的 structured_task_group 建構達到一樣的執行效果。

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

繼承階層架構

task_group

需求

標頭: ppl.h

**命名空間:**並行

請參閱

參考

Concurrency 命名空間

structured_task_group 類別

task_handle 類別