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
Id
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.
Versión
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