EClrOperation

Actualización: noviembre 2007

Describe el conjunto de operaciones para las que un host puede aplicar acciones de directiva.

typedef enum {
    OPR_ThreadAbort,
    OPR_ThreadRudeAbortInNonCriticalRegion,
    OPR_ThreadRudeAbortInCriticalRegion,
    OPR_AppDomainUnload,
    OPR_AppDomainRudeUnload,
    OPR_ProcessExit,
    OPR_FinalizerRun
} EClrOperation;

Miembros

Miembro

Descripción

OPR_AppDomainRudeUnload

El host puede especificar las acciones de directiva que se han de realizar cuando se descarga AppDomain de manera forzada.

OPR_AppDomainUnload

El host puede especificar las acciones de directiva que se deben realizar cuando se descarga un objeto AppDomain.

OPR_FinalizerRun

El host puede especificar las acciones de directiva que se deben realizar al ejecutar los finalizadores.

OPR_ProcessExit

El host puede especificar las acciones de directiva que se deben realizar cuando el proceso sale.

OPR_ThreadAbort

El host puede especificar las acciones de directiva que se deben realizar cuando se anula un subproceso.

OPR_ThreadRudeAbortInCriticalRegion

El host puede especificar las acciones de directiva que se deben realizar cuando se produce una anulación forzada de un subproceso en una región crítica del código.

OPR_ThreadRudeAbortInNonCriticalRegion

El host puede especificar las acciones de directiva que se deben realizar cuando se produce una anulación forzada de un subproceso en una región del código que no es crítica.

Comentarios

La infraestructura de confiabilidad de Common Language Runtime (CLR) distingue entre las anulaciones y los errores de asignación de recursos que se producen en regiones críticas del código y las que se producen en regiones no críticas. Esta distinción permite a los hosts establecer directivas distintas dependiendo de dónde se produzca el error en el código.

Una región crítica del código es una zona en la que CLR no puede garantizar que la anulación de una tarea o la imposibilidad de satisfacer una solicitud de recursos va a afectar solamente a la tarea actual. Por ejemplo, si una tarea mantiene un bloqueo y, al realizar una solicitud de asignación de memoria, recibe un valor HRESULT que indica un error, no basta con anular la tarea para garantizar la estabilidad de AppDomain, porque AppDomain puede contener otras tareas que esperan el mismo bloqueo. Si se abandona la tarea actual, es posible que las demás tareas dejen de responder indefinidamente. En este caso, el host necesita disponer de capacidad para descargar el objeto AppDomain completo con el fin de evitar el riesgo potencial de inestabilidad del sistema.

Por otro lado, una región del código que no es crítica es una región en la que CLR puede garantizar que una anulación o un error sólo van a afectar a la tarea en la que se produce el error.

CLR también distingue entre anulaciones correctas y forzadas. En general, una anulación normal o correcta intenta ejecutar siempre las rutinas de control de excepciones y los finalizadores antes de anular una tarea, mientras que una anulación forzada no ofrece esas garantías.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: MSCorEE.idl

Biblioteca: MSCorEE.dll

.NET Framework, versiones: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

EClrFailure

EPolicyAction

ICLRPolicyManager

IHostPolicyManager

Otros recursos

Enumeraciones para hosts