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_FOR_REJIT               = 8  
} COR_PRF_SUSPEND_REASON;  

メンバー

メンバー 説明
COR_PRF_SUSPEND_OTHER ランタイムは特定できない原因のため中断されています。
COR_PRF_SUSPEND_FOR_GC ランタイムはガベージ コレクション要求を処理するために中断されています。

ガベージ コレクションに関連するコールバックは、ICorProfilerCallback::RuntimeSuspendFinishedICorProfilerCallback::RuntimeResumeStarted のコールバックの間で発生します。
COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN ランタイムは AppDomain をシャットダウンできるように中断されています。

ランタイムが中断されている間、ランタイムは、シャットダウンされている AppDomain 内のスレッドを特定し、これらが再開するときに中止するように設定します。 この中断期間中は、AppDomain 固有のコールバックはありません。
COR_PRF_SUSPEND_FOR_CODE_PITCHING ランタイムはコード ピッチが発生するように中断されています。

コード ピッチは、コード ピッチが有効な状態で Just-In-Time (JIT) コンパイラがアクティブの場合にのみ発生します。 コード ピッチ コールバックは、ICorProfilerCallback::RuntimeSuspendFinished コールバックと ICorProfilerCallback::RuntimeResumeStarted コールバックの間で発生します。 注: CLR JIT では .NET Framework バージョン 2.0 の関数のピッチを調整しないため、この値は 2.0 では使用されません。
COR_PRF_SUSPEND_FOR_SHUTDOWN ランタイムはシャットダウンできるように中断されています。 操作を完了するには、すべてのスレッドを中断する必要があります。
COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER ランタイムはインプロセス デバッグのために中断されています。
COR_PRF_SUSPEND_FOR_GC_PREP ランタイムはガベージ コレクションの準備のために中断されています。
COR_PRF_SUSPEND_FOR_REJIT ランタイムは JIT 再コンパイルのために中断されています。

解説

アンマネージド コード内のすべてのランタイム スレッドは、ランタイムに再び入ろうとするまで実行を継続することができ、その時点になると、これらもランタイムが再開されるまで中断されます。 これは、ランタイムに入る新しいスレッドにも当てはまります。 ランタイム内のすべてのスレッドは、割り込み可能なコードに存在する場合に直ちに中断されるか、割り込み可能なコードに到達すると中断するように求められます。

必要条件

:システム要件」を参照してください。

ヘッダー : CorProf.idl、CorProf.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 1.0 以降で使用可能

関連項目