Класс task_group
Класс task_group представляет коллекцию параллельные работы которые могут подождать или быть отменена.
class task_group;
Члены
Открытые конструкторы
Имя |
Описание |
---|---|
Перегружен. Создает новый объект task_group. |
|
Удаляет объект task_group. Ожидается вызов метода wait или run_and_wait на объект до выполнения деструктора, если деструктор не выполняется в результате очистки стека из-за исключения. |
Открытые методы
Имя |
Описание |
---|---|
Пытается отменить поддерево работ, имеющее корень в данной группе задач. Все задачи, запланированные в группе задач, по возможности отменяются транзитивно. |
|
Сообщает вызывающей стороне, находится ли группа задач в данный момент в состоянии отмены. Это не обязательно означает, что метод cancel был вызван на объект task_group (хотя это определенно позволяет этому метод вернуть 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