다음을 통해 공유


ICorProfilerCallback::Shutdown 메서드

애플리케이션이 종료되고 있음을 프로파일러에 알립니다.

구문

HRESULT Shutdown();  

설명

프로파일러 코드는 Shutdown 메서드가 호출된 후 ICorProfilerInfo 인터페이스의 메서드를 안전하게 호출할 수 없습니다. ICorProfilerInfo 메서드를 호출하면 Shutdown 메서드가 반환된 후 정의되지 않은 동작이 발생합니다. 종료 후에도 변경할 수 없는 특정 이벤트가 계속 발생할 수 있습니다. 이 경우 프로파일러는 즉시 반환하도록 주의해야 합니다.

Shutdown 메서드는 프로파일링되는 관리형 애플리케이션이 관리 코드로 시작된 경우에만 호출됩니다(즉, 프로세스 스택의 초기 프레임이 관리됨). 애플리케이션이 비관리 코드로 시작되었지만 나중에 관리 코드로 이동하여 CLR(공용 언어 런타임)의 인스턴스를 만드는 경우에는 Shutdown이 호출되지 않습니다. 이 경우 프로파일러는 추적을 디스크로 플러시하는 등 데이터를 처리하는 정리를 수행하고 리소스를 해제하는 데 DLL_PROCESS_DETACH 값을 사용하는 DllMain 루틴을 라이브러리에 포함해야 합니다.

일반적으로 프로파일러는 예기치 않은 종료에 대처해야 합니다. 예를 들어 Win32의 TerminateProcess 메서드(Winbase.h에 선언됨)로 인해 프로세스가 중단될 수 있습니다. 다른 경우에 CLR은 정리된 소멸 메시지를 전달하지 않고 특정 관리형 스레드(백그라운드 스레드)를 중지합니다.

요구 사항

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

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

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

참고 항목