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::RuntimeSuspendFinished 与 ICorProfilerCallback::RuntimeResumeStarted 回调之间。 |
COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN |
为确保关闭 AppDomain 而暂停运行时。暂停运行时后,运行时会确定 AppDomain 中的哪些线程将关闭,并在这些线程恢复时将它们设置为中止。 在此暂停期间没有进行特定于 AppDomain 的回调。 |
COR_PRF_SUSPEND_FOR_CODE_PITCHING |
为确保能够调整代码间距而暂停运行时。 仅当实时 (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 起可用