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::RuntimeSuspendFinishedICorProfilerCallback::RuntimeResumeStarted 回调之间发生。

COR_PRF_FIELD_SUSPEND_FOR_APPDOMAIN_SHUTDOWN

运行时挂起,以便可以关闭 AppDomain

当运行时挂起时,该运行时将确定要关闭的 AppDomain 中包含哪些线程并将它们设置为在继续时中止。 在此挂起期间,不存在任何 AppDomain 特定的回调。

COR_PRF_FIELD_SUSPEND_FOR_CODE_PITCHING

运行时挂起,以便进行代码间距调整。

仅当实时 (JIT) 编译器处于活动状态并且启用了代码间距调整时,才会进行代码间距调整。 代码间距调整回调发生在 ICorProfilerCallback::RuntimeSuspendFinishedICorProfilerCallback::RuntimeResumeStarted 回调之间。

注意注意
在 .NET Framework 2.0 版中,CLR JIT 并不调整函数的间距,因此 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

请参见

其他资源

分析枚举