COR_PRF_SUSPEND_REASON

更新:2007 年 11 月

指示运行库挂起的原因。

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

**库:**CorGuids.lib

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

其他资源

分析枚举