Метод ICorProfilerCallback::Shutdown
Уведомляет профилировщика о завершении работы приложения.
Синтаксис
HRESULT Shutdown();
Remarks
Код профилировщика не может безопасно вызывать методы интерфейса ICorProfilerInfo после Shutdown
вызова метода . Любые вызовы методов приводят к ICorProfilerInfo
неопределенному поведению после Shutdown
возврата метода. Некоторые неизменяемые события могут по-прежнему возникать после завершения работы; профилировщик должен позаботиться о том, чтобы вернуться сразу после этого.
Метод Shutdown
будет вызываться только в том случае, если управляемое приложение, профилированное, запущено как управляемый код (то есть управляется начальным кадром в стеке процессов). Если приложение началось как неуправляемый код, но позже перепрыгнуло в управляемый код, тем самым создав экземпляр среды CLR, вызов Shutdown
не будет выполняться. В таких случаях профилировщик должен включить в свою библиотеку подпрограмму DllMain
, которая использует значение DLL_PROCESS_DETACH для освобождения ресурсов и выполнения очистки данных, таких как очистка трассировок на диск и т. д.
Как правило, профилировщик должен справляться с непредвиденными завершениями работы. Например, процесс может быть остановлен методом Win32 TerminateProcess
(объявлен в Winbase.h). В других случаях среда CLR будет останавливать определенные управляемые потоки (фоновые потоки) без доставки сообщений о упорядоченном уничтожении для них.
Требования
Платформы: см. раздел Требования к системе.
Заголовок: CorProf.idl, CorProf.h
Библиотека: CorGuids.lib
версии платформа .NET Framework: доступно с версии 2.0.