Compartir a través de


Context::Unblock (Método)

Desbloquea el contexto y hace que se convierta en ejecutable.

virtual void Unblock() =0;

Comentarios

Es absolutamente legal que una llamada al método Unblock llegue antes que una llamada correspondiente al método Block. Siempre que las llamadas a los métodos Unblock y Block se emparejen correctamente, el runtime administra la carrera natural de cada ordenación correctamente. Una llamada Unblock que venga delante de una llamada Block niega el efecto de la llamada Block.

Hay varias excepciones que se pueden producir desde este método. Si un contexto intenta llamar al método Unblock por sí mismo, se producirá una excepción context_self_unblock. Si las llamadas a Block y Unblock no están emparejadas correctamente (por ejemplo, dos llamadas a Unblock se hace para un contexto que está ejecutando), una excepción de context_unblock_unbalanced se producirá.

Tenga en cuenta que hay un período crítico entre el punto donde su código publica su contexto para que otro subproceso pueda llamar al método Unblock y el punto donde se realiza la llamada a Block del método real. Durante este período, no debe llamar a ningún método que puede a su vez bloquear y desbloquear por sus propias razones (por ejemplo, adquiriendo un bloqueo). Las llamadas al método Unblock y Block no realizan el seguimiento de los motivos para bloqueo y desbloqueo. Solo un objeto debería tener la propiedad de un par Block y Unblock.

Requisitos

Encabezado: concrt.h

Espacio de nombres: simultaneidad

Vea también

Referencia

Context (Clase)

Context::Block (Método)

Conceptos

Programador de tareas (Runtime de simultaneidad)