Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Representa uma abstração de um grupo de agendamento. 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 de agendamento. |
| 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: simultaneidade
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 de agendamento.
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 de agendamento criado usando o método CurrentScheduler::CreateScheduleGroup ou Scheduler::CreateScheduleGroup inicia com uma contagem de referência igual a um.
Lançamento
Reduz a contagem de referências do grupo agendado.
virtual unsigned int Release() = 0;
Valor de retorno
A contagem de referências decrementada 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 um 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, você não pode mais utilizar o grupo de agendamento. Isso resultará em um comportamento indefinido.
Um grupo de agendamento está associado a uma determinada instância do agendador. Certifique-se de que todas as referências ao grupo de agendamento sejam liberadas antes de todas as referências ao agendador, pois estas podem resultar na destruição do agendador. Fazer o contrário resulta em um comportamento indefinido.
~ScheduleGroup
virtual ~ScheduleGroup();
Agendar Tarefa
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 usada para executar o corpo da tarefa de baixa carga.
_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 de agendamento, que é removida pelo runtime em um momento apropriado após a execução da tarefa.
Confira também
Namespace de concorrência
Classe CurrentScheduler
Classe Scheduler
Agendador de Tarefas