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.
Una abstracción para un subproceso de ejecución. Si desea conceder subprocesos programables en modo usuario (UMS) al programador, establezca el valor para el elemento de directiva de programador SchedulerKind en UmsThreadDefault e implemente la interfaz IUMSScheduler. Los subprocesos UMS se admiten únicamente en sistemas operativos de 64 bits con Windows 7 o una versión posterior.
Sintaxis
struct IUMSThreadProxy : public IThreadProxy;
Miembros
Métodos públicos
| Nombre | Descripción |
|---|---|
| IUMSThreadProxy::EnterCriticalRegion | Se llama para entrar en una región crítica. Si se encuentra dentro de una región crítica, el programador no observará las operaciones de bloqueo asincrónicas que se producen en la región. Esto significa que el planificador no se reentrará para fallos de página, suspensiones de subprocesos, llamadas a procedimientos asincrónicos del kernel (APCs), etc., para un subproceso de UMS. |
| IUMSThreadProxy::EnterHyperCriticalRegion | Se le llama para entrar en una región hipercrítica. Cuando se encuentra dentro de una región hipercrítica, el programador no observará ninguna operación de bloqueo que se produzca en la región. Esto significa que el planificador no se volverá a invocar para llamadas de función bloqueantes, intentos de adquisición de bloqueo que se bloquean, fallos de página, suspensiones de subprocesos, llamadas a procedimientos asincrónicos del kernel (APCs), etc., para un subproceso de UMS. |
| IUMSThreadProxy::ExitCriticalRegion | Llamado para salir de una región crítica. |
| IUMSThreadProxy::ExitHyperCriticalRegion | Se invoca para abandonar una región hipercrítica. |
| IUMSThreadProxy::GetCriticalRegionType | Devuelve el tipo de región crítica en la que se encuentra el proxy de hilo. Dado que las regiones hipercríticas son un superconjunto de regiones críticas, si el código se ha especificado en una región crítica y después en una hipercrítica, se devolverá InsideHyperCriticalRegion. |
Jerarquía de herencia
IUMSThreadProxy
Requisitos
Encabezado: concrtrm.h
Espacio de nombres: simultaneidad
Método IUMSThreadProxy::EnterCriticalRegion
Se le llama para entrar en una región crítica. Si se encuentra dentro de una región crítica, el programador no observará las operaciones de bloqueo asincrónicas que se producen en la región. Esto significa que el planificador no se reentrará para fallos de página, suspensiones de hilos, llamadas a procedimientos asincrónicos del núcleo (APCs), etc., para un hilo de UMS.
virtual int EnterCriticalRegion() = 0;
Valor devuelto
Nueva profundidad de la región crítica. Las regiones críticas son reentrantes.
IUMSThreadProxy::EnterHyperCriticalRegion Método
Se le llama para entrar en una región hipercrítica. Cuando se encuentra dentro de una región hipercrítica, el programador no observará ninguna operación de bloqueo que se produzca en la región. Esto significa que el planificador no se volverá a entrar para las llamadas de función bloqueantes, los intentos de adquisición de bloqueos que lo hagan, fallos de página, suspensiones de hilos, llamadas a procedimientos asincrónicos del kernel (APCs), etc., para un hilo UMS.
virtual int EnterHyperCriticalRegion() = 0;
Valor devuelto
La nueva profundidad de la región hipercrítica. Las regiones hipercríticas son reentrantes.
Comentarios
El programador debe tener mucho cuidado sobre los métodos a los que llama y los bloqueos que adquiere en dichas regiones. Si el código en una región de este tipo se bloquea en un cerrojo mantenido por algo que el planificador es responsable de programar, puede generar un interbloqueo.
Método IUMSThreadProxy::ExitCriticalRegion
Se le llama para salir de una región crítica.
virtual int ExitCriticalRegion() = 0;
Valor devuelto
Nueva profundidad de la región crítica. Las regiones críticas son reentrantes.
IUMSThreadProxy::ExitHyperCriticalRegion (Método)
Se invoca para abandonar una región hipercrítica.
virtual int ExitHyperCriticalRegion() = 0;
Valor devuelto
La nueva profundidad de la región hipercrítica. Las regiones hipercríticas son reentrantes.
Método IUMSThreadProxy::GetCriticalRegionType
Devuelve el tipo de región crítica en la que se encuentra el proxy de hilo. Dado que las regiones hipercríticas son un superconjunto de regiones críticas, si el código se ha especificado en una región crítica y después en una hipercrítica, se devolverá InsideHyperCriticalRegion.
virtual CriticalRegionType GetCriticalRegionType() const = 0;
Valor devuelto
El tipo de región crítica en la que se encuentra el proxy de hilo.
Consulte también
espacio de nombres de concurrencia
IUMSScheduler (estructura)