ScheduleGroup (Clase)

Representa una abstracción para un grupo de programación. Los grupos de programación organizan un conjunto de trabajos relacionados que se benefician de programarse juntos ya sea temporalmente, mediante la ejecución de otra tarea en el mismo grupo antes de trasladarse a otro grupo, o espacialmente, mediante la ejecución de varios elementos del mismo grupo en el mismo nodo NUMA o socket físico.

Sintaxis

class ScheduleGroup;

Miembros

Constructores protegidos

Nombre Descripción
~ScheduleGroup Destructor

Métodos públicos

Nombre Descripción
Id Devuelve un identificador para el grupo de programación que es único dentro del programador al que pertenece el grupo.
Referencia Incrementa el contador de referencias del grupo de programación.
Versión Disminuye el contador de referencias del grupo de programación.
ScheduleTask Programa una tarea ligera dentro del grupo de programación.

Jerarquía de herencia

ScheduleGroup

Requisitos

Encabezado: concrt.h

Espacio de nombres: simultaneidad

Identificador

Devuelve un identificador para el grupo de programación que es único dentro del programador al que pertenece el grupo.

virtual unsigned int Id() const = 0;

Valor devuelto

Un identificador para el grupo de programación que es único dentro del programador al que pertenece el grupo.

operator delete

El runtime destruye internamente un objeto ScheduleGroup cuando se liberan todas las referencias externas a él. No se puede eliminar explícitamente.

void operator delete(
    void* _PObject);

void operator delete(
    void* _PObject,
    int,
const char *,
    int);

Parámetros

_PObject
Un puntero al objeto que se va a eliminar.

Referencia

Incrementa el contador de referencias del grupo de programación.

virtual unsigned int Reference() = 0;

Valor devuelto

Recuento de referencias recién incrementado.

Comentarios

Esto se usa normalmente para administrar la duración del grupo de programación para la composición. Cuando el recuento de referencias de un grupo de programación cae a cero, el runtime elimina el grupo de programación. Un grupo de programación creado mediante el método CurrentScheduler::CreateScheduleGroup o el método Scheduler::CreateScheduleGroup inicia con un recuento de referencias de uno.

Release

Disminuye el contador de referencias del grupo de programación.

virtual unsigned int Release() = 0;

Valor devuelto

Recuento de referencias recién reducido.

Comentarios

Esto se usa normalmente para administrar la duración del grupo de programación para la composición. Cuando el recuento de referencias de un grupo de programación cae a cero, el runtime elimina el grupo de programación. Después de haber llamado al método Release el número específico de veces para quitar el recuento de referencias de creación y las referencias adicionales colocadas mediante el método Reference, no puede usar más el grupo de programación. Si lo hace, se producirá un comportamiento indefinido.

Un grupo de programación está asociado con una instancia del programador determinada. Debe asegurarse de que todas las referencias al grupo de programación se liberen antes de que se libere todas las referencias al programador, ya que esto último podría ocasionar la destrucción del programador. De lo contrario, se produce un comportamiento indefinido.

~ScheduleGroup

virtual ~ScheduleGroup();

ScheduleTask

Programa una tarea ligera dentro del grupo de programación.

virtual void ScheduleTask(
    TaskProc _Proc,
    _Inout_opt_ void* _Data) = 0;

Parámetros

_Proc
Un puntero a la función por ejecutar para realizar el cuerpo de la tarea ligera.

_Data
Puntero nulo para los datos que se pasarán como parámetro al cuerpo de la tarea.

Comentarios

La llamada al método ScheduleTask coloca implícitamente un recuento de referencias en el grupo de programación que quita el runtime en un momento adecuado después de que se ejecute la tarea.

Consulte también

concurrency (espacio de nombres)
CurrentScheduler (clase)
Scheduler (clase)
Programador de tareas