COR_PRF_SUSPEND_REASON 列舉
指出暫止執行階段的原因。
typedef enum {
COR_PRF_SUSPEND_OTHER = 0x00,
COR_PRF_SUSPEND_FOR_GC = 0x01,
COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN = 0x02,
COR_PRF_SUSPEND_FOR_CODE_PITCHING = 0x03,
COR_PRF_SUSPEND_FOR_SHUTDOWN = 0x04,
COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER = 0x06,
COR_PRF_SUSPEND_FOR_GC_PREP = 0x07
} COR_PRF_SUSPEND_REASON;
成員
成員 |
描述 |
---|---|
COR_PRF_FIELD_SUSPEND_OTHER |
由於未指定的原因而暫止執行階段。 |
COR_PRF_FIELD_SUSPEND_FOR_GC |
暫止執行階段以服務記憶體回收要求。 會在 ICorProfilerCallback::RuntimeSuspendFinished 和 ICorProfilerCallback::RuntimeResumeStarted 回呼之間發生與記憶體回收相關的回呼。 |
COR_PRF_FIELD_SUSPEND_FOR_APPDOMAIN_SHUTDOWN |
暫止執行階段以便關閉 AppDomain。 當暫止執行階段時,執行階段會判斷正在關閉的 AppDomain 中有哪些執行緒,而且會在它們繼續時將其設為中止。 在此暫止期間,沒有 AppDomain 特定的回呼。 |
COR_PRF_FIELD_SUSPEND_FOR_CODE_PITCHING |
暫止執行階段以便發生程式碼字幅。 只有在 Just-In-Time (JIT) 編譯器作用中而且啟用程式碼字幅時,才會發生程式碼字幅。 程式碼字幅回呼會在 ICorProfilerCallback::RuntimeSuspendFinished 和 ICorProfilerCallback::RuntimeResumeStarted 回呼之間發生。
注意事項
CLR JIT 不會設定 .NET Framework 2.0 版的函式字幅,所以在 2.0 版不使用這個值。
|
COR_PRF_FIELD_SUSPEND_FOR_SHUTDOWN |
暫止執行階段以便關閉它。 它必須暫止所有執行緒,才能完成此作業。 |
COR_PRF_FIELD_SUSPEND_FOR_INPROC_DEBUGGER |
為了同處理序偵錯而暫止執行階段。 |
COR_PRF_FIELD_SUSPEND_FOR_GC_PREP |
暫止執行階段以準備記憶體回收。 |
備註
Unmanaged 程式碼中的所有執行階段執行緒都會被允許繼續執行,直到嘗試重新進入執行階段,此時,它們也會被暫止,直到執行階段繼續。 這也會套用至進入執行階段的新執行緒。 執行階段中的所有執行緒若是在可中斷的程式碼中會被立即暫止,若是執行到可中斷的程式碼時會被要求暫止。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**CorProf.idl、CorProf.h
**程式庫:**CorGuids.lib
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0