共用方式為


ICorProfilerCallback::Shutdown 方法

更新:2007 年 11 月

向分析工具告知應用程式正在關閉。

HRESULT Shutdown();

備註

分析工具程式碼無法在呼叫 Shutdown 方法之後安全呼叫 ICorProfilerInfo 介面的方法。在 Shutdown 方法傳回之後,ICorProfilerInfo 方法的任何呼叫都會造成未定義的行為。特定的不可變動事件可能仍會在關閉後發生,因此分析工具應負責在發生這種狀況時立即傳回。

只有在分析中的 Managed 應用程式當做 Managed 程式碼 (即處理序堆疊上的初始框架是 Managed) 啟動時,才會呼叫 Shutdown 方法。如果應用程式當做 Unmanaged 程式碼啟動但稍後跳躍進入 Managed 程式碼,因此建立 Common Language Runtime (CLR) 的執行個體,則不會呼叫 Shutdown。對於這種情況,分析工具應該在程式庫中包含 DllMain 常式,其使用 DLL_PROCESS_DETACH 值以釋放任何資源,並且執行資料清除處理,例如將追蹤清除至磁碟等。

一般而言,分析工具必須處理未預期的關閉。例如,處理序可能由 Win32 的 TerminateProcess 方法 (在 Winbase.h 中宣告) 所暫止。在其他情況下,CLR 會暫止特定的 Managed 執行緒 (背景執行緒),而不傳遞其依序的解構訊息。

需求

**平台:**請參閱 .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 方法