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 Version 2.0 では関数をコード ピッチしないため、この値は 2.0 では使用されません。

COR_PRF_FIELD_SUSPEND_FOR_SHUTDOWN

ランタイムは、終了できるように中断されます。 操作を完了するには、すべてのスレッドを中断する必要があります。

COR_PRF_FIELD_SUSPEND_FOR_INPROC_DEBUGGER

ランタイムは、インプロセス デバッグのために中断されます。

COR_PRF_FIELD_SUSPEND_FOR_GC_PREP

ランタイムは、ガベージ コレクションを準備するために中断されます。

解説

アンマネージ コード内にあるランタイム スレッドはすべて、ランタイムに再入するまで引き続き実行できます。再入の時点で、ランタイムが再開するまでランタイム スレッドも中断されます。 これは、ランタイムに入る新しいスレッドにも適用されます。 ランタイム内のスレッドはすべて、直ちに中断される (中断可能なコード内にある場合) か、中断可能なコードに到達した時点での中断を要求されるかのいずれかです。

必要条件

プラットフォーム: 「.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

参照

その他の技術情報

列挙体のプロファイリング