Compartilhar via


Método de Context::Unblock

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

virtual void Unblock() =0;

Comentários

É perfeitamente legal para uma chamada para o Unblock método para vir antes de uma chamada correspondente para o Block método. Desde que as chamadas para o Block e Unblock métodos corretamente estão emparelhados, o runtime manipula adequadamente a corrida natural de um dos pedidos. Um Unblock chamada antes de um Block chamada simplesmente anula o efeito do Block chamada.

Existem várias exceções, que podem ser lançadas deste método. Se um contexto tenta chamar o Unblock método em si, uma context_self_unblock exceção será lançada. Se chama Block e Unblock não estão emparelhados corretamente (por exemplo: duas chamadas para Unblock são feitas para um contexto que está sendo executado), um context_unblock_unbalanced exceção será lançada.

Lembre-se de que há um período crítico entre o ponto onde o seu código publica seu contexto de outro segmento poder chamar o Unblock método e o ponto onde o método real é chamada para Block é feita. Durante esse período, é imperativo que você não chamar qualquer método que por sua vez pode bloquear e desbloquear por suas próprias razões (por exemplo: adquirindo um bloqueio). Chama o Block e Unblock método não rastrear o motivo do bloqueio e desbloqueio. Apenas um objeto deve ter a propriedade de um Block e Unblock par.

Requisitos

Cabeçalho: concrt.h

Namespace: Simultaneidade

Consulte também

Referência

Classe de contexto

Método de Context::Block

Conceitos

Agendador de tarefas (Runtime de simultaneidade)