EClrOperation (Enumeración)

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

Sintaxis

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 acciones de directiva que se deben realizar cuando un objeto AppDomain se descarga de una manera poco correcta (grosera).
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 cuando se ejecutan los finalizadores.
OPR_ProcessExit El host puede especificar las acciones de directiva que se deben realizar cuando se cierra el proceso.
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 de subproceso grosera en una región de código crítica.
OPR_ThreadRudeAbortInNonCriticalRegion El host puede especificar las acciones de directiva que se deben realizar cuando se produce una anulación de subproceso grosera en una región de código no 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 los que se producen en regiones no críticas del código. Esta distinción está diseñada para permitir que los hosts establezcan directivas diferentes en función de dónde se produzca un error en el código.

Una región crítica del código es cualquier espacio en el que CLR no puede garantizar que la anulación de una tarea o el error al completar una solicitud de recursos solo afectarán a la tarea actual. Por ejemplo, si una tarea contiene un bloqueo y recibe un HRESULT que indica un error al realizar una solicitud de asignación de memoria, no basta con simplemente anular esa tarea para garantizar la estabilidad de AppDomain, ya que AppDomain puede contener otras tareas que esperen el mismo bloqueo. El abandono de la tarea actual puede provocar que esas otras tareas dejen de responder. En tal caso, el host necesita poder descargar todo el AppDomain en lugar de arriesgarse a una posible inestabilidad.

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

CLR también distingue entre anulaciones correctas y no correctas (groseras). En general, una anulación normal o correcta hace todo lo posible para ejecutar rutinas y finalizadores de control de excepciones antes de anular una tarea, mientras que una anulación grosera no ofrece estas garantías.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: MSCorEE.h

Biblioteca: MSCorEE.dll

Versiones de .NET Framework: disponible a partir de la versión 2.0

Consulte también