Перечисление EClrOperation

Описывает набор операций, для которых узел может применять действия политики.

Синтаксис

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

Элементы

Член Описание
OPR_AppDomainRudeUnload Узел может указать действия политики, которые будут выполняться при AppDomain выгрузке в неграциозном (грубом) способе.
OPR_AppDomainUnload Узел может указать действия политики, которые будут выполняться при AppDomain выгрузке .
OPR_FinalizerRun Узел может указать действия политики, которые будут выполняться при запуске методов завершения.
OPR_ProcessExit Узел может указать действия политики, которые будут выполняться при завершении процесса.
OPR_ThreadAbort Узел может указать действия политики, которые будут выполняться при прерывании потока.
OPR_ThreadRudeAbortInCriticalRegion Узел может указать действия политики, которые будут выполняться при прерывании грубого потока в критической области кода.
OPR_ThreadRudeAbortInNonCriticalRegion Узел может указать действия политики, которые будут выполняться при прерывании грубого потока в некритичной области кода.

Комментарии

Инфраструктура обеспечения надежности среды CLR позволяет различать прерывания и сбои выделения ресурсов, которые происходят в критически важных областях кода и в некритических областях кода. Это различие позволяет узлам задавать различные политики в зависимости от того, где происходит сбой в коде.

Критически важной областью кода является любое пространство, где среда CLR не может гарантировать, что прерывание задачи или неудача при выполнении запроса ресурсов повлияет только на текущую задачу. Например, если задача удерживает блокировку и получает HRESULT, которая указывает на сбой при выполнении запроса на выделение памяти, недостаточно просто прервать задачу, чтобы обеспечить стабильность AppDomain, так как AppDomain может содержать другие задачи, ожидающие той же блокировки. Отказ от текущей задачи может привести к тому, что другие задачи перестают отвечать на запросы. В таком случае узлу требуется возможность выгрузить весь AppDomain объект, а не рисковать потенциальной нестабильностью.

С другой стороны, некритическая область кода — это регион, в котором среда CLR может гарантировать, что прерывание или сбой повлияет только на задачу, в которой возникает ошибка.

Среда CLR также различает изящные и неграциозные (грубые) прерывания. Как правило, обычное или корректное прерывание делает все возможное, чтобы запустить подпрограммы обработки исключений и методы завершения перед прерыванием задачи, в то время как грубое прерывание не дает таких гарантий.

Требования

Платформы: см. раздел Требования к системе.

Заголовка: MSCorEE.h

Библиотека: MSCorEE.dll

версии платформа .NET Framework: доступно с версии 2.0.

См. также раздел