Compartilhar via


Método Context::Unblock

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

virtual void Unblock() =0;

Comentários

Perfeitamente é válido para uma chamada ao método de Unblock vir antes de uma chamada correspondente ao método de Bloco . Como as chamadas para os métodos de Block e de Unblock emparelhados são corretamente, o tempo de execução trata corretamente a uma corrida natural de qualquer um de ordenação. Uma chamada de Unblock que vem antes que uma chamada de Block negar somente o efeito de chamada de Block .

Há várias exceções que podem ser geradas deste método. Se um contexto tentar chamar o método de Unblock em, se uma exceção de context_self_unblock será gerada. Se as chamadas a Block e Unblock não emparelhados são corretamente (por exemplo, duas chamadas a Unblock são feitas para um contexto que está sendo executado atualmente), a exceção de context_unblock_unbalanced será gerada.

Lembre-se de que há um período crítico entre o ponto em que seu código publicação do contexto de outro thread pode chamar o método de Unblock e o ponto em que a chamada real do método a Block será feito. Durante esse período, você não deve chamar nenhum método que por sua vez pode bloquear e desbloquear para suas próprias motivos (por exemplo, adquire um bloqueio). Chamadas para o método de Block e de Unblock não controlam o motivo do bloqueio e desbloqueio do. Apenas um objeto deve ter a propriedade de um par de Block e de Unblock .

Requisitos

Cabeçalho: concrt.h

Namespace: simultaneidade

Consulte também

Referência

Classe Context

Método Context::Block

Conceitos

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