ICorProfilerCallback::Shutdown 方法

向探查器通知应用程序正在关闭。

语法

HRESULT Shutdown();  

备注

调用 Shutdown 方法后,探查器代码无法安全地调用 ICorProfilerInfo 接口的方法。 对 ICorProfilerInfo 方法的任何调用都会导致 Shutdown 方法返回后出现未定义的行为。 某些不可变事件在关闭后仍可能发生,探查器应在发生此情况时小心立即返回。

只有当被分析的托管应用程序作为托管代码启动时(即进程堆栈上的初始帧是托管的),才会调用 Shutdown 方法。 如果应用程序作为非托管代码启动但后来又跳转为托管代码,并由此创建了公共语言运行时 (CLR) 的实例,则不会调用 Shutdown。 对于这些情况,探查器应在其库中包含一个 DllMain 例程,该例程使用 DLL_PROCESS_DETACH 值来释放任何资源并执行其数据的清理处理,例如将跟踪刷新到磁盘等。

一般情况下,探查器需要处理意外关闭。 例如,某个进程可能会被 Win32 的 TerminateProcess 方法(在 Winbase.h 中声明)停止。 在其他情况下,CLR 将停止某些托管线程(后台线程),而不为它们传递有序的销毁消息。

要求

平台:请参阅系统要求

头文件: CorProf.idl、CorProf.h

库:CorGuids.lib

.NET Framework 版本:自 2.0 起可用

另请参阅