ScheduleGroup 클래스ScheduleGroup Class

일정 그룹에 대한 추상화를 나타냅니다.Represents an abstraction for a schedule group. 일정 그룹은 다른 그룹으로 이동하기 전에 동일한 그룹의 다른 작업을 실행하여 시간적으로 또는 동일한 NUMA 노드 또는 실제 소켓에서 동일한 그룹 내의 여러 항목을 실행하여 공간적으로 서로 가깝게 예약하면 도움이 되는 관련된 작업 집합을 구성합니다.Schedule groups organize a set of related work that benefits from being scheduled close together either temporally, by executing another task in the same group before moving to another group, or spatially, by executing multiple items within the same group on the same NUMA node or physical socket.

구문Syntax

class ScheduleGroup;

구성원Members

Protected 생성자Protected Constructors

속성Name DescriptionDescription
~ ScheduleGroup 소멸자~ScheduleGroup Destructor

Public 메서드Public Methods

속성Name DescriptionDescription
IdId 그룹이 속한 스케줄러 내에서 고유한 일정 그룹에 대 한 식별자를 반환 합니다.Returns an identifier for the schedule group that is unique within the scheduler to which the group belongs.
참조Reference 일정 그룹 참조 횟수를 증가시킵니다.Increments the schedule group reference count.
릴리스Release 일정 그룹 참조 횟수를 감소시킵니다.Decrements the scheduler group reference count.
ScheduleTaskScheduleTask 일정 그룹 내에서 경량 작업을 예약 합니다.Schedules a light-weight task within the schedule group.

상속 계층Inheritance Hierarchy

ScheduleGroup

요구 사항Requirements

헤더: concrt .hHeader: concrt.h

네임스페이스: 동시성Namespace: concurrency

A-idId

그룹이 속한 스케줄러 내에서 고유한 일정 그룹에 대 한 식별자를 반환 합니다.Returns an identifier for the schedule group that is unique within the scheduler to which the group belongs.

virtual unsigned int Id() const = 0;

Return ValueReturn Value

그룹이 속한 스케줄러 내에서 고유한 일정 그룹의 식별자입니다.An identifier for the schedule group that is unique within the scheduler to which the group belongs.

operator deleteoperator delete

ScheduleGroup 개체는 해당 개체에 대 한 모든 외부 참조가 해제 될 때 런타임에서 내부적으로 소멸 됩니다.A ScheduleGroup object is destroyed internally by the runtime when all external references to it are released. 개체를 명시적으로 삭제할 수 없습니다.It cannot be explicitly deleted.

void operator delete(
    void* _PObject);

void operator delete(
    void* _PObject,
    int,
const char *,
    int);

매개 변수Parameters

_PObject_PObject
삭제할 개체에 대 한 포인터입니다.A pointer to the object to be deleted.

참조일Reference

일정 그룹 참조 횟수를 증가시킵니다.Increments the schedule group reference count.

virtual unsigned int Reference() = 0;

Return ValueReturn Value

새로 증가 된 참조 수입니다.The newly incremented reference count.

설명Remarks

이는 일반적으로 컴퍼지션에 대 한 일정 그룹의 수명을 관리 하는 데 사용 됩니다.This is typically used to manage the lifetime of the schedule group for composition. 일정 그룹의 참조 횟수가 0이 되 면 해당 일정 그룹은 런타임에 의해 삭제 됩니다.When the reference count of a schedule group falls to zero, the schedule group is deleted by the runtime. Currentscheduler:: CreateScheduleGroup 메서드를 사용 하 여 만든 일정 그룹이 나 Scheduler:: CreateScheduleGroup 메서드는 참조 횟수를 사용 하 여 시작 합니다.A schedule group created using either the CurrentScheduler::CreateScheduleGroup method, or the Scheduler::CreateScheduleGroup method starts out with a reference count of one.

릴리스Release

일정 그룹 참조 횟수를 감소시킵니다.Decrements the scheduler group reference count.

virtual unsigned int Release() = 0;

Return ValueReturn Value

새로 감소 한 참조 수입니다.The newly decremented reference count.

설명Remarks

이는 일반적으로 컴퍼지션에 대 한 일정 그룹의 수명을 관리 하는 데 사용 됩니다.This is typically used to manage the lifetime of the schedule group for composition. 일정 그룹의 참조 횟수가 0이 되 면 해당 일정 그룹은 런타임에 의해 삭제 됩니다.When the reference count of a schedule group falls to zero, the schedule group is deleted by the runtime. Release 메서드를 사용하여 배치된 추가 참조와 생성 참조 횟수를 제거하기 위해 Reference 메서드를 특정 횟수 만큼 호출한 후에는 더 이상 일정 그룹을 이용할 수 없습니다.After you have called the Release method the specific number of times to remove the creation reference count and any additional references placed using the Reference method, you cannot utilize the schedule group further. 이렇게 하면 정의 되지 않은 동작이 발생 합니다.Doing so will result in undefined behavior.

일정 그룹은 특정 스케줄러 인스턴스와 연결 됩니다.A schedule group is associated with a particular scheduler instance. 스케줄러에 대한 모든 참조는 스케줄러에서 소멸될 수 있기 때문에 스케줄러에 대한 모든 참조가 해제되기 전에 일정 그룹에 대한 모든 참조가 해제되었는지 확인해야 합니다.You must ensure that all references to the schedule group are released before all references to the scheduler are released, because the latter could result in the scheduler being destroyed. 그러지 않으면 정의 되지 않은 동작이 발생 합니다.Doing otherwise results in undefined behavior.

~ ScheduleGroup~ScheduleGroup

virtual ~ScheduleGroup();

ScheduleTaskScheduleTask

일정 그룹 내에서 경량 작업을 예약 합니다.Schedules a light-weight task within the schedule group.

virtual void ScheduleTask(
    TaskProc _Proc,
    _Inout_opt_ void* _Data) = 0;

매개 변수Parameters

_Proc_Proc
경량 작업 본문을 수행 하기 위해 실행 하는 함수에 대 한 포인터입니다.A pointer to the function to execute to perform the body of the light-weight task.

_Data_Data
작업 본문에 매개 변수로 전달 될 데이터에 대 한 void 포인터입니다.A void pointer to the data that will be passed as a parameter to the body of the task.

설명Remarks

ScheduleTask 메서드를 호출 하면 작업이 실행 된 후 적절 한 시간에 런타임에 의해 제거 되는 일정 그룹에 참조 수가 암시적으로 배치 됩니다.Calling the ScheduleTask method implicitly places a reference count on the schedule group which is removed by the runtime at an appropriate time after the task executes.

참고 항목See also

concurrency 네임스페이스concurrency Namespace
CurrentScheduler 클래스CurrentScheduler Class
Scheduler 클래스Scheduler Class
작업 스케줄러Task Scheduler