다음을 통해 공유


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은 정상적인 중단과 잘못된 중단을 구분합니다. 일반적으로 정상적으로 중단되면 작업을 중단하기 전에 예외 처리 루틴과 종료자가 실행되지만 잘못된 중단은 이런 식으로 대처하지 않고 작업을 곧바로 중단합니다.

요구 사항

플랫폼: .NET Framework 시스템 요구 사항 참조

헤더: MSCorEE.h

라이브러리: MSCorEE.dll

.NET Framework 버전: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

참고 항목

참조

EClrFailure 열거형

EPolicyAction 열거형

ICLRPolicyManager 인터페이스

IHostPolicyManager 인터페이스

기타 리소스

호스팅 열거형