Share via


COR_PRF_SUSPEND_REASON 열거형

런타임이 일시 중단된 이유를 나타냅니다.

구문

typedef enum {  
    COR_PRF_SUSPEND_OTHER                   = 0x00,  
    COR_PRF_SUSPEND_FOR_GC                  = 0x01,  
    COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN  = 0x02,  
    COR_PRF_SUSPEND_FOR_CODE_PITCHING       = 0x03,  
    COR_PRF_SUSPEND_FOR_SHUTDOWN            = 0x04,  
    COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER     = 0x06,  
    COR_PRF_SUSPEND_FOR_GC_PREP             = 0x07,    COR_PRF_SUSPEND_FOR_REJIT               = 8  
} COR_PRF_SUSPEND_REASON;  

멤버

멤버 Description
COR_PRF_SUSPEND_OTHER 지정되지 않은 이유로 런타임이 일시 중단되었습니다.
COR_PRF_SUSPEND_FOR_GC 가비지 수집 요청을 처리하기 위해 런타임이 일시 중단됩니다.

가비지 수집 관련 콜백은 ICorProfilerCallback::RuntimeSuspendFinishedICorProfilerCallback::RuntimeResumeStarted 콜백 사이에서 발생합니다.
COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN AppDomain을 종료할 수 있도록 런타임이 일시 중단되었습니다.

런타임이 일시 중단되는 동안 런타임은 종료되는 AppDomain에 있는 스레드를 확인하고 다시 시작될 때 중단되도록 설정합니다. 이 일시 중지 중에는 특정 AppDomain의 콜백이 없습니다.
COR_PRF_SUSPEND_FOR_CODE_PITCHING 코드 피칭이 발생할 수 있도록 런타임이 일시 중단됩니다.

코드 피칭은 JIT(Just-In-Time) 컴파일러가 코드 피칭이 사용하도록 설정된 상태에서 활성화된 경우에만 발생합니다. 코드 피칭 콜백은 ICorProfilerCallback::RuntimeSuspendFinishedICorProfilerCallback::RuntimeResumeStarted 콜백 사이에서 발생합니다. 참고: CLR JIT는 .NET Framework 버전 2.0에서 함수를 추천하지 않으므로 이 값은 2.0에서 사용되지 않습니다.
COR_PRF_SUSPEND_FOR_SHUTDOWN 종료할 수 있도록 런타임이 일시 중단됩니다. 작업을 완료하려면 모든 스레드를 일시 중단해야 합니다.
COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER 프로세스 내 디버깅을 위해 런타임이 일시 중단됩니다.
COR_PRF_SUSPEND_FOR_GC_PREP 가비지 수집을 준비하기 위해 런타임이 일시 중단됩니다.
COR_PRF_SUSPEND_FOR_REJIT JIT 다시 컴파일을 위해 런타임이 일시 중단됩니다.

설명

비관리 코드에 있는 모든 런타임 스레드는 런타임에 다시 들어가려고 할 때까지 계속 실행되도록 허용되며, 이 시점에서 런타임이 다시 시작될 때까지 일시 중단됩니다. 이는 런타임에 들어가는 새 스레드에도 적용됩니다. 런타임 내의 모든 스레드는 인터럽트 가능한 코드에 있는 경우 즉시 일시 중단되거나 인터럽트 가능한 코드에 도달하면 일시 중단하도록 요청됩니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

.NET Framework 버전: 1.0부터 사용 가능

참고 항목