Compartilhar via


Classe Context

Representa uma abstração para um contexto de execução.

class Context;

Membros

Construtores Protegidos

Nome

Descrição

Destruidor Context::~Context

Métodos Públicos

Nome

Descrição

Método Context::Block

Bloqueia o contexto atual.

Método Context::CurrentContext

Retorna um ponteiro ao contexto atual.

Método Context::GetId

Retorna um identificador para o contexto que é exclusivo dentro do agendador ao qual o contexto pertence.

Método Context::GetScheduleGroupId

Retorna um identificador para o grupo de agendas em que o contexto está trabalhando atualmente.

Método Context::GetVirtualProcessorId

Retorna um identificador para o processador virtual em que o contexto está em execução atualmente.

Método Context::Id

Retorna um identificador para o contexto atual que é exclusivo dentro do agendador ao qual o contexto atual pertence.

Método Context::IsCurrentTaskCollectionCanceling

Retorna uma indicação que especifica se a coleção de tarefas que está atualmente em execução inline no contexto atual está no meio de um cancelamento ativo (ou será cancelada em breve).

Método Context::IsSynchronouslyBlocked

Determina se o contexto está bloqueado de forma síncrona. Um contexto é considerado como bloqueado de forma síncrona se executar explicitamente uma ação que resulte em bloqueio.

Método Context::Oversubscribe

Injeta um processador virtual adicional em um agendador para a duração de um bloco de código quando chamado em um contexto que é executado em um dos processadores virtuais no agendador.

Método Context::ScheduleGroupId

Retorna um identificador para o grupo de agendas em que o contexto atual está trabalhando.

Método Context::Unblock

Desbloqueia o contexto e faz com que se torne executável.

Método Context::VirtualProcessorId

Retorna um identificador para o processador virtual em que o contexto atual está em execução.

Método Context::Yield

Produz a execução para que outro contexto seja executado. Se nenhum outro contexto estiver disponível para produzir, o agendador poderá produzir para outro segmento do sistema operacional.

Comentários

O agendador de tempo de execução de simultaneidade (consulte Agendador) usa contextos para executar o trabalho colocado na fila para ele pelo seu aplicativo. Um thread Win32 é um exemplo de contexto de execução em um sistema operacional Windows.

A qualquer momento, o nível de simultaneidade de um agendador é igual ao número de processadores virtuais concedidos a ele pelo Gerenciador de Recursos. Um processador virtual é uma abstração para um recurso de processamento e mapeia para um thread de hardware seguro no sistema subjacente. Somente um único contexto de agendador pode ser executado em um processador virtual em um determinado momento.

O agendador é cooperativo por natureza e um contexto de execução pode render seu processador virtual em um contexto diferente a qualquer momento se desejar entrar no estado de espera. Quando a espera acaba, não pode ser retomada até que um processador virtual disponível do agendador comece a executá-la.

Hierarquia de Herança

Context

Requisitos

Cabeçalho: concrt.h

Namespace: simultaneidade

Consulte também

Referência

Namespace Concurrency

Classe Scheduler

Conceitos

Agendador de tarefas (Tempo de Execução de Simultaneidade)