Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Representa una abstracción para el programador actual asociado al contexto de la llamada.
Sintaxis
class CurrentScheduler;
Miembros
Métodos públicos
| Nombre | Descripción |
|---|---|
| Creación | Crea un nuevo programador cuyo comportamiento se describe mediante el parámetro _Policy y lo asocia al contexto de llamada. El planificador recién creado se convertirá en el planificador actual para el contexto de llamada. |
| CreateScheduleGroup | Sobrecargado Crea un nuevo grupo de programación dentro del programador asociado con el contexto de llamada. La versión que toma el parámetro _Placement hace que las tareas del grupo de programación recién creado estén sesgadas a ejecutarse en la ubicación especificada por ese parámetro. |
| Separar | Desasocia el programador actual del contexto de llamada y restaura el programador asociado previamente como programador actual, si existe alguno. Una vez devuelto este método, el planificador administra el contexto de llamada que estaba asociado previamente al contexto mediante el método CurrentScheduler::Create o Scheduler::Attach. |
| Get | Devuelve un puntero al planificador asociado al contexto de llamada, también denominado planificador actual. |
| GetNumberOfVirtualProcessors (ObtenerNúmeroDeProcesadoresVirtuales) | Devuelve el número actual de procesadores virtuales para el programador asociado al contexto de llamada. |
| GetPolicy | Devuelve una copia de la política con la que fue creado el planificador actual. |
| Id | Devuelve un identificador único para el programador actual. |
| IsAvailableLocation | Determina si una ubicación determinada está disponible en el programador actual. |
| RegistrarEventoDeApagado | Provoca que el manejador de eventos de Windows, pasado en el parámetro _ShutdownEvent, reciba una señal cuando el programador asociado con el contexto actual se apague y se destruya a sí mismo. En el momento en que se señala el evento, se completa todo el trabajo que se había programado para el programador. Se pueden registrar varios eventos de apagado a través de este método. |
| ScheduleTask | Sobrecargado Programa una tarea ligera en el programador asociado al contexto de llamada. La tarea ligera se colocará en un grupo de programación determinado por el tiempo de ejecución. La versión que toma el parámetro _Placement hace que la tarea esté sesgada hacia la ejecución en la ubicación especificada. |
Comentarios
Si no hay ningún programador (consulte Scheduler) asociado al contexto de llamada, muchos métodos de la clase CurrentScheduler darán como resultado la asociación del programador predeterminado del proceso. Esto también puede implicar que durante dicha llamada se cree el programador predeterminado del proceso.
Jerarquía de herencia
CurrentScheduler
Requisitos
Encabezado: concrt.h
Espacio de nombres: simultaneidad
Crear
Crea un nuevo programador cuyo comportamiento se describe mediante el parámetro _Policy y lo asocia al contexto de llamada. El programador recién creado se convertirá en el programador actual para el contexto de llamada.
static void __cdecl Create(const SchedulerPolicy& _Policy);
Parámetros
_Política
La política del planificador que describe el comportamiento del planificador recién creado.
Comentarios
La asociación del planificador al contexto de llamada implícitamente atribuye un recuento de referencias al planificador.
Después de crear un programador con el método Create, debe llamar al método CurrentScheduler::Detach en algún momento en el futuro para que el programador se apague.
Si se llama a este método desde un contexto que ya está asociado a un programador diferente, el programador existente se recuerda como el programador anterior y el programador recién creado se convierte en el programador actual. Cuando se llama al método CurrentScheduler::Detach en un momento posterior, el programador anterior se restaura como el programador actual.
Este método puede producir una variedad de excepciones, incluidas scheduler_resource_allocation_error e invalid_scheduler_policy_value.
CrearGrupoDeHorarios
Crea un nuevo grupo de programación dentro del programador asociado con el contexto de llamada. La versión que toma el parámetro _Placement hace que las tareas del grupo de programación recién creado estén sesgadas a ejecutarse en la ubicación especificada por ese parámetro.
static ScheduleGroup* __cdecl CreateScheduleGroup();
static ScheduleGroup* __cdecl CreateScheduleGroup(location& _Placement);
Parámetros
_Colocación
Una referencia a una ubicación donde se dará prioridad a la ejecución de las tareas dentro del grupo de tareas programadas.
Valor devuelto
Puntero para el grupo de programación recién creado. Este objeto ScheduleGroup tiene un recuento de referencias inicial colocado en él.
Comentarios
Este método hará que se cree el programador predeterminado del proceso y se adjunte al contexto de la llamada si no hay ningún programador asociado actualmente con el contexto de la llamada.
Debe invocar el método Liberar en un grupo de programación cuando haya terminado de programar el trabajo en él. El programador destruirá el grupo de programación cuando se haya completado todo el trabajo en cola en él.
Tenga en cuenta que si creó explícitamente este programador, debe liberar todas las referencias a los grupos de programación que contiene, antes de liberar la referencia en el programador, mediante la desasociación del mismo del contexto actual.
Desacoplar
Desasocia el programador actual del contexto de llamada y restaura el programador asociado previamente como programador actual, si existe alguno. Una vez devuelto este método, el planificador administra el contexto de llamada que estaba asociado previamente al contexto mediante el método CurrentScheduler::Create o Scheduler::Attach.
static void __cdecl Detach();
Comentarios
El método Detach quita implícitamente un recuento de referencias del planificador.
Si no hay ningún programador asociado al contexto de llamada, al llamar a este método se producirá una excepción scheduler_not_attached.
Si se llama a este método desde un contexto interno y administrado por un programador, o desde un contexto que se asoció mediante un método distinto de Scheduler::Attach o CurrentScheduler::Create, se producirá una excepción improper_scheduler_detach.
Obtener
Devuelve un puntero al planificador asociado al contexto de llamada, también denominado planificador actual.
static Scheduler* __cdecl Get();
Valor devuelto
Un puntero al planificador asociado con el contexto de llamada (el planificador actual).
Comentarios
Este método hará que se cree el programador predeterminado del proceso y se adjunte al contexto de la llamada si no hay ningún programador asociado actualmente con el contexto de la llamada. No se coloca ninguna referencia adicional en el objeto Scheduler devuelto por este método.
GetNumberOfVirtualProcessors
Devuelve el número actual de procesadores virtuales para el programador asociado al contexto de llamada.
static unsigned int __cdecl GetNumberOfVirtualProcessors();
Valor devuelto
Si un programador está asociado al contexto de llamada, el número actual de procesadores virtuales para ese programador; de lo contrario, el valor -1.
Comentarios
Este método no resultará en la vinculación con un planificador si el contexto llamante aún no está asociado a un planificador.
El valor devuelto por este método es un muestreo instantáneo del número de procesadores virtuales para el planificador asociado con el contexto de llamada. Este valor puede ser obsoleto en el momento en que se devuelve.
GetPolicy
Devuelve una copia de la política con la que fue creado el planificador actual.
static SchedulerPolicy __cdecl GetPolicy();
Valor devuelto
Una copia de la política con la que se creó el programador actual.
Comentarios
Este método hará que se cree el programador predeterminado del proceso y se adjunte al contexto de la llamada si no hay ningún programador asociado actualmente con el contexto de la llamada.
Id
Devuelve un identificador único para el programador actual.
static unsigned int __cdecl Id();
Valor devuelto
Si un planificador está asociado al contexto de llamada, se asigna un identificador único a dicho planificador; de lo contrario, el valor -1.
Comentarios
Este método no resultará en la vinculación con un planificador si el contexto llamante aún no está asociado a un planificador.
UbicaciónDisponible
Determina si una ubicación determinada está disponible en el programador actual.
static bool __cdecl IsAvailableLocation(const location& _Placement);
Parámetros
_Colocación
Una referencia a la ubicación para consultar al planificador actual sobre ello.
Valor devuelto
Una indicación de si la ubicación especificada por el argumento _Placement está disponible en el programador actual.
Comentarios
Este método no resultará en la vinculación con un planificador si el contexto llamante aún no está asociado a un planificador.
Tenga en cuenta que el valor devuelto es un muestreo instantáneo de si la ubicación especificada está disponible. En presencia de varios planificadores, la gestión dinámica de recursos puede agregar o quitar recursos de los planificadores en cualquier momento. En caso de que esto suceda, la ubicación especificada puede cambiar la disponibilidad.
RegisterShutdownEvent
Provoca que el manejador de eventos de Windows, pasado en el parámetro _ShutdownEvent, reciba una señal cuando el programador asociado con el contexto actual se apague y se destruya a sí mismo. En el momento en que se señala el evento, se completa todo el trabajo que se había programado para el programador. Se pueden registrar varios eventos de apagado a través de este método.
static void __cdecl RegisterShutdownEvent(HANDLE _ShutdownEvent);
Parámetros
_ShutdownEvent
Un manejador de un objeto de evento de Windows que recibirá una señal del entorno de ejecución cuando el planificador asociado con el contexto actual se apague y se autodestruya.
Comentarios
Si no hay ningún programador asociado al contexto de llamada, al llamar a este método se producirá una excepción scheduler_not_attached.
ScheduleTask
Programa una tarea ligera en el programador asociado al contexto de llamada. La tarea ligera se colocará en un grupo de programación determinado por el tiempo de ejecución. La versión que toma el parámetro _Placement hace que la tarea esté sesgada hacia la ejecución en la ubicación especificada.
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data);
static void __cdecl ScheduleTask(
TaskProc _Proc,
_Inout_opt_ void* _Data,
location& _Placement);
Parámetros
_Proc
Un puntero a la función para ejecutar al 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.
_Colocación
Referencia a una ubicación hacia la cual se inclinará la ejecución de una tarea liviana.
Comentarios
Este método hará que se cree el programador predeterminado del proceso y se adjunte al contexto de la llamada si no hay ningún programador asociado actualmente con el contexto de la llamada.
Consulte también
espacio de nombres de concurrencia
Scheduler (clase)
PolicyElementKey
Programador de tareas