ICorProfilerCallback::Shutdown 方法

更新:2007 年 11 月

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

HRESULT Shutdown();

备注

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

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

通常,探查器必须处理意外关闭。例如,某一进程可能被 Win32 的 TerminateProcess 方法(在 Winbase.h 中声明)暂停。在其他情况下,CLR 将暂停某些托管线程(后台线程),而不按顺序为其传送析构消息。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**CorProf.idl

**库:**CorGuids.lib

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

请参见

参考

ICorProfilerCallback

ICorProfilerCallback::Initialize 方法