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부터 사용 가능
참고 항목
.NET