task_group 클래스

task_group 클래스는 대기하거나 취소될 수 있는 병렬 작업의 컬렉션을 나타냅니다.

class task_group;

멤버

Public 생성자

Name

설명

task_group::task_group 생성자

task_group 개체를 생성합니다.

task_group::~task_group 소멸자

task_group 개체를 소멸시킵니다. 예외로 인한 스택 해제의 결과로 소멸자가 실행되지 않는 경우 소멸자 실행 전에 개체에서 wait 또는 run_and_wait 메서드를 호출해야 합니다.

Public 메서드

Name

설명

task_group::cancel 메서드

이 작업 그룹에서 시작한 작업의 하위 트리를 취소하려는 시도를 하십시오. 작업 그룹에 예약된 모든 작업은 가능한 경우 전이적으로 취소됩니다.

task_group::is_canceling 메서드

작업 그룹이 현재 취소 중에 있는지 여부를 호출자에게 알립니다. 이는 cancel 메서드가 task_group 개체에서 호출된 것을 반드시 나타낼 필요는 없습니다(이 메서드가 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

네임스페이스: 동시성

참고 항목

참조

동시성 네임스페이스

structured_task_group 클래스

task_handle 클래스