ランタイムが中断される理由を示します。
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