EClrOperation 열거형

호스트가 정책 작업을 적용할 수 있는 작업 집합을 설명합니다.

구문

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

멤버

멤버 Description
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부터 사용 가능

참고 항목