Partilhar via


Classe de Grupos de Horário

Representa uma abstração para um grupo de agenda. Os grupos de agendamento organizam um conjunto de trabalhos relacionados que beneficiam de serem agendados próximos uns dos outros, seja temporalmente, executando outra tarefa no mesmo grupo antes de se moverem para outro grupo, ou espacialmente, executando múltiplos itens dentro do mesmo grupo no mesmo nó NUMA ou soquete físico.

Sintaxe

class ScheduleGroup;

Membros

Construtores Protegidos

Nome Description
~Destruidor de Grupo de Agendamento

Métodos Públicos

Nome Description
Id Devolve um identificador para o grupo de agendamento que é único dentro do agendador ao qual o grupo pertence.
Referência Incrementa a contagem de referências dos grupos de horários.
Lançamento Diminui a contagem de referências do grupo de agendadores.
TarefaAgendada Agenda uma tarefa de baixa prioridade dentro do grupo de agendamento.

Hierarquia de herança

ScheduleGroup

Requerimentos

Cabeçalho: concrt.h

Namespace: simultaneidade

Id

Devolve um identificador para o grupo de agendamento que é único dentro do agendador ao qual o grupo pertence.

virtual unsigned int Id() const = 0;

Valor de retorno

Um identificador para o grupo de agendamento que é único dentro do agendador ao qual o grupo pertence.

Operador eliminar

Um objeto é destruído internamente pelo tempo de execução quando todas as referências ScheduleGroup externas a ele são libertadas. Não pode ser explicitamente eliminado.

void operator delete(
    void* _PObject);

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

Parâmetros

_PObject
Um apontador para o objeto a ser eliminado.

Reference

Incrementa a contagem de referências dos grupos de horários.

virtual unsigned int Reference() = 0;

Valor de retorno

A contagem de referências recentemente incrementada.

Observações

Isto é normalmente usado para gerir a vida útil do grupo de cronograma para composição. Quando a contagem de referências de um grupo de agendamento cai para zero, o grupo de agendamento é removido pelo runtime. Um grupo de agendamento criado usando o método CurrentScheduler::CreateScheduleGroup ou o método Scheduler::CreateScheduleGroup começa com uma contagem de referência de um.

Release

Diminui a contagem de referências do grupo de agendadores.

virtual unsigned int Release() = 0;

Valor de retorno

A contagem de referência recentemente decrementada.

Observações

Isto é normalmente usado para gerir a vida útil do grupo de cronograma para composição. Quando a contagem de referências de um grupo de agendamento cai para zero, o grupo de agendamento é removido pelo ambiente de execução. Depois de chamar o método Release o número específico de vezes para remover a contagem de referências de criação e quaisquer referências adicionais colocadas usando o método Reference, não pode mais usar o grupo de agendamento. Fazê-lo resultará em comportamentos indefinidos.

Um grupo de agendamento está associado a uma instância específica de agendador. Deve garantir que todas as referências ao grupo de agendamento são divulgadas antes de todas as referências ao agendador serem divulgadas, pois este último pode resultar na destruição do agendador. Fazer o contrário resulta em comportamentos indefinidos.

~GrupoDeAgendamento

virtual ~ScheduleGroup();

AgendaTarefa

Agenda uma tarefa leve dentro do grupo de agendamento.

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

Parâmetros

_Proc
Um apontador para a função a executar para realizar o corpo da tarefa leve.

_Data
Um ponteiro de tipo void para os dados que serão passados como parâmetro para o corpo da tarefa.

Observações

Chamar o método ScheduleTask adiciona implicitamente uma contagem de referência ao grupo de tarefas, que é removida pelo tempo de execução num momento adequado após a execução da tarefa.

Consulte também

concorrência Namespace
Classe CurrentScheduler
Classe Scheduler
Agendador de Tarefas