IVirtualProcessorRoot::EnsureAllTasksVisible (Método)
Hace que los datos almacenados en la jerarquía de la memoria de procesadores individuales se vuelvan visible a todos los procesadores del sistema. Asegura que una barrera de memoria completa se ha ejecutado en todos los procesadores antes de que el método se devuelva.
virtual void EnsureAllTasksVisible(
_Inout_ IExecutionContext *pContext
) =0;
Parámetros
- pContext
El contexto que actualmente está siendo enviado por esta raíz del procesador virtual.
Comentarios
Puede encontrar este método útil al desear sincronizar la desactivación de una raíz del procesador virtual con la suma de nuevo trabajo en el programador. Por motivos de rendimiento, puede decidir agregar elementos de trabajo a su programador sin ejecutar una barrera de memoria, lo que significa que los elementos de trabajo agregados por un subproceso que se ejecuta en un procesador no están inmediatamente visibles en todos los demás procesadores. Usando este método junto con el método Deactivate puede asegurarse de que su programador no desactiva todas las raíces del procesador virtual mientras los elementos de trabajo existen en las colecciones de su programador.
Una llamada al método EnsureAllTasksVisibleThe debe originarse desde el método Dispatch del contexto de ejecución desde el que la raíz del procesador virtual se activó en último lugar. En otras palabras, el proxy del subproceso que invoca el método EnsureAllTasksVisible debe ser el que se está ejecutando actualmente en la raíz del procesador virtual. Si llama método en una raíz del procesador virtual, no está ejecutando o podría producirse un comportamiento indefinido.
Se produce invalid_argument si el argumento pContext tiene el valor NULL.
Se produce invalid_operation si la raíz del procesador virtual no se ha activado nunca o si el argumento pContext no representa el contexto de ejecución que fue enviado recientemente por esta raíz del procesador virtual.
Requisitos
Encabezado: concrtrm.h
Espacio de nombres: simultaneidad