Condividi tramite


Metodo IVirtualProcessorRoot::EnsureAllTasksVisible

Provoca dati archiviati nella gerarchia della memoria di processori singoli per diventare visibile a tutti i processori sul sistema. Si assicura che un recinto della memoria completo sia stato eseguito su tutti i processori prima della restituzione del metodo.

virtual void EnsureAllTasksVisible(
   _Inout_ IExecutionContext *pContext
) =0;

Parametri

  • pContext
    Contesto inviato attualmente dalla radice del processore virtuale.

Note

È possibile individuare tale metodo utile quando si desidera sincronizzare la disattivazione di una radice del processore virtuale con l'aggiunta di un nuovo lavoro nell'utilità di pianificazione. Per motivi di prestazioni, è possibile decidere di aggiungere elementi di lavoro all'utilità di pianificazione senza eseguire una barriera della memoria, il che significa che elementi di lavoro aggiunti da un thread in esecuzione su un processore non sono immediatamente visibili a tutti gli altri processori. Utilizzando questo metodo insieme al metodo Deactivate è possibile assicurarsi che l'utilità di pianificazione non disattivi tutte le sue radici di processore virtuale quando gli elementi di lavoro esistono nelle raccolte dell'utilità di pianificazione.

Una chiamata al metodo EnsureAllTasksVisibleThe deve provenire dall'interno del metodo Dispatch del contesto di esecuzione con il quale è stata attivata la radice del processore virtuale l'ultima volta. In altre parole, il proxy del thread che richiama il metodo EnsureAllTasksVisible deve essere quello attualmente in esecuzione sulla radice del processore virtuale. La chiamata del metodo su una radice di processore virtuale su cui non è in corso di esecuzione potrebbe comportare un comportamento non definito.

invalid_argument è generata se l'argomento pContext ha il valore NULL.

invalid_operation viene generato se la radice del processore virtuale non è mai stata attivata oppure l'argomento pContext non rappresenta il contesto di esecuzione inviato più recentemente da questa radice del processore virtuale.

Requisiti

Header: concrtrm.h

Concorrenza diSpazio dei nomi:

Vedere anche

Riferimenti

Struttura IVirtualProcessorRoot

Metodo IVirtualProcessorRoot::Deactivate