Classe ScheduleGroup
Representa uma abstração de um grupo agendado. Os grupos agendados organizam um conjunto de trabalhos relacionados que se beneficiam do agendamento conjunto, seja temporalmente (por meio da execução de outra tarefa no mesmo grupo antes de passar para o seguinte) ou espacialmente (por meio da execução de vários itens do mesmo grupo no mesmo nó NUMA ou soquete físico).
Sintaxe
class ScheduleGroup;
Membros
Construtores Protegidos
Nome | Descrição |
---|---|
Destruidor de ~ScheduleGroup |
Métodos públicos
Nome | Descrição |
---|---|
Id | Retorna um identificador do grupo agendado que é exclusivo no agendador ao qual o grupo pertence. |
Referência | Incrementa a contagem de referências do grupo agendado. |
Versão | Reduz a contagem de referências do grupo agendado. |
ScheduleTask | Agenda uma tarefa leve no grupo agendado. |
Hierarquia de herança
ScheduleGroup
Requisitos
Cabeçalho: concrt.h
Namespace: concurrency
ID
Retorna um identificador do grupo agendado que é exclusivo no agendador ao qual o grupo pertence.
virtual unsigned int Id() const = 0;
Valor de retorno
Um identificador do grupo agendado que é exclusivo no agendador ao qual o grupo pertence.
operador delete
Um objeto ScheduleGroup
é destruído internamente pelo runtime quando todas as referências externas a ele são liberadas. Ele não pode ser excluído explicitamente.
void operator delete(
void* _PObject);
void operator delete(
void* _PObject,
int,
const char *,
int);
Parâmetros
_PObject
Um ponteiro para o objeto a ser excluído.
Referência
Incrementa a contagem de referências do grupo agendado.
virtual unsigned int Reference() = 0;
Valor de retorno
A contagem de referências incrementada recentemente.
Comentários
Normalmente, isso é usado para gerenciar o tempo de vida do grupo agendado para composição. Quando a contagem de referências de um grupo agendado cai para zero, ele é excluído pelo runtime. Um grupo agendado criado usando o método CurrentScheduler::CreateScheduleGroup ou Scheduler::CreateScheduleGroup começa com uma contagem de referências de uma.
Versão
Reduz a contagem de referências do grupo agendado.
virtual unsigned int Release() = 0;
Valor de retorno
A contagem de referências reduzida recentemente.
Comentários
Normalmente, isso é usado para gerenciar o tempo de vida do grupo agendado para composição. Quando a contagem de referências de um grupo agendado cai para zero, ele é excluído pelo runtime. 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 será mais possível utilizar o grupo agendado. Isso resultará em um comportamento indefinido.
Um grupo agendado está associado a uma instância específica de agendador. Certifique-se de que todas as referências ao grupo agendado sejam liberadas antes de todas as referências ao agendador, pois as últimas podem resultar na destruição do agendador. Fazer o contrário resulta em um comportamento indefinido.
~ScheduleGroup
virtual ~ScheduleGroup();
ScheduleTask
Agenda uma tarefa leve no grupo agendado.
virtual void ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data) = 0;
Parâmetros
_Proc
Um ponteiro para a função a ser empregada a fim de executar o corpo da tarefa leve.
_Data
Um ponteiro nulo para os dados que serão transmitidos como um parâmetro ao corpo da tarefa.
Comentários
Chamar o método ScheduleTask
implicitamente coloca uma contagem de referências no grupo agendado que é removida pelo runtime em um momento apropriado após a execução da tarefa.
Confira também
Namespace de simultaneidade
Classe CurrentScheduler
Classe Scheduler
Agendador de Tarefas