EClrOperation (Enumeración)
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.h
Biblioteca: MSCorEE.dll
Versiones de .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0