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::RuntimeSuspendFinishedICorProfilerCallback::RuntimeResumeStarted 回调之间。
COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN 为确保关闭 AppDomain 而暂停运行时。

暂停运行时后,运行时会确定 AppDomain 中的哪些线程将关闭,并在这些线程恢复时将它们设置为中止。 在此暂停期间没有进行特定于 AppDomain 的回调。
COR_PRF_SUSPEND_FOR_CODE_PITCHING 为确保能够调整代码间距而暂停运行时。

仅当实时 (JIT) 编译器处于活动状态并启用代码间距调整时,才会发生代码间距调整。 代码间距调整回调发生在 ICorProfilerCallback::RuntimeSuspendFinishedICorProfilerCallback::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 起可用

另请参阅