Condividi tramite


Metodo Context::Unblock

Consente di sbloccare il contesto e determinare che diventi eseguibile.

virtual void Unblock() =0;

Note

È perfettamente valido per una chiamata al metodo Unblock precedente rispetto a una chiamata corrispondente al metodo Blocco.Finché le chiamate ai metodi Block e Unblock vengono abbinate correttamente, il runtime gestisce in modo corretto la naturale corsa dell'ordinamento.Una chiamata Unblock che viene prima di una chiamata Block nega semplicemente l'effetto della chiamata Block.

Questo metodo può generare diverse eccezioni.Se un contesto tenta di chiamare il metodo Unblock su se stesso, sarà generata un'eccezione context_self_unblock.Se le chiamate a Block e Unblock correttamente non sono abbinate, ad esempio due chiamate a Unblock vengono effettuate per un contesto in esecuzione), viene generata un'eccezione di context_unblock_unbalanced verrà generata un'eccezione.

Tenere presente che esiste un periodo critico tra il punto in cui il codice pubblica il contesto affinché un altro thread sia in grado di chiamare il metodo Unblock e il punto in cui viene effettuata la chiamata effettiva al metodo Block.Durante questo periodo, non è necessario chiamare qualsiasi metodo che può a sua volta bloccare e sbloccare per i propri motivi, ad esempio acquisendo un blocco.Le chiamate al metodo Block e Unblock non localizzano il motivo del blocco e dello sblocco.Solo un oggetto deve disporre della proprietà di una coppia Block e Unblock.

Requisiti

Header: concrt.h

Concorrenza diSpazio dei nomi:

Vedere anche

Riferimenti

Classe Context

Metodo Context::Block

Concetti

Utilità di pianificazione (runtime di concorrenza)