task_group 類別
task_group 類別表示可以等候或取消的平行工作集合。
class task_group;
成員
公用建構函式
名稱 |
說明 |
---|---|
多載。 建構新的 task_group 物件。 |
|
終結 task_group 物件。 您應在解構函式執行前在物件上呼叫 wait 或 run_and_wait 方法,除非執行解構函式是因例外狀況而回溯堆疊的結果。 |
公用方法
名稱 |
說明 |
---|---|
儘可能取消以此工作群組為根的工作之樹狀子目錄。 如果可能,會以可轉移方式取消工作群組中所有排定的工作。 |
|
會通知呼叫端目前是否正在取消工作群組。 這不一定表示在 task_group 物件上呼叫 cancel 方法 (雖然這樣一定可以讓此方法傳回 true)。 可能是 task_group 物件正以內嵌方式執行,而且已取消工作樹狀結構中的工作群組。 在這類的情況下,當執行階段可以預先判斷取消會流經這個 task_group 物件時,也會傳回 true。 |
|
多載。 在 task_group 物件上排程工作。 如果將 task_handle 物件做為參數傳遞到 run,呼叫端會負責管理 task_handle 物件的存留期。 將函式物件當成參數參考的方法的版本與執行階段中的堆疊配置有關,其效果可能不如使用參考 task_handle 物件的版本。 採用 _Placement 參數的版本會造成工作被偏移往執行該參數所指定的位置。 |
|
多載。 排程工作以內嵌方式執行於呼叫內容,並以 task_group 物件協助支援完整的取消作業。 函式接著會等候直到 task_group 物件上的所有工時已完成或取消。 如果將 task_handle 物件做為參數傳遞到 run_and_wait,呼叫端會負責管理 task_handle 物件的存留期。 |
|
等候直到 task_group 物件上的所有工作皆已完成或取消。 |
備註
與嚴重限制的 structured_task_group 類別不同的是 task_group 類別是更一般的建構。 它並沒有任何 structured_task_group 所描述的限制。 您可以安全地跨執行緒使用 task_group 物件,並且自由利用。 task_group 建構的缺點是它可能無法像執行少量工作的 structured_task_group 建構達到一樣的執行效果。
如需詳細資訊,請參閱工作平行處理原則 (並行執行階段)。
繼承階層
task_group
需求
標頭: ppl.h
**命名空間:**concurrency