EMemoryCriticalLevel 枚举
包含一些值,这些值指示当请求了特定内存分配但无法得到满足时失败所造成的影响。
typedef enum {
eTaskCritical = 0,
eAppDomainCritical = 1,
eProcessCritical = 2
} EMemoryCriticalLevel;
成员
成员 |
说明 |
---|---|
eAppDomainCritical |
指示此分配是在已请求该分配的域中执行托管代码的关键。 如果无法分配内存,则 CLR 不能保证该域仍可使用。 宿主决定无法满足分配时采取的操作。 它可以指示 CLR 自动中止 AppDomain,也可以通过调用 ICLRPolicyManager 上的方法让其保持运行。 |
eProcessCritical |
指示此分配是在进程中执行托管代码的关键。 在启动期间和运行终结器时使用此值。 如果无法分配内存,则 CLR 无法在进程中操作。 如果分配失败,则将有效地禁用 CLR。 所有的后续 CLR 调入都将失败,并返回 HOST_E_CLRNOTAVAILABLE。 |
eTaskCritical |
指示此分配是运行已请求该分配的任务的关键。 如果无法分配内存,则 CLR 不能保证任务可被执行。 在失败的情况下,CLR 在物理操作系统线程上引发一个 ThreadAbortException。 |
备注
IHostMemoryManager 和 IHostMAlloc 接口中定义的内存分配方法采用此类型的参数。 根据失败的严重性,宿主可决定是立刻放弃分配请求还是等到满足该请求。
要求
**平台:**请参见 .NET Framework 系统要求。
**头文件:**MSCorEE.h
**库:**MSCorEE.dll
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0
请参见
参考
ICLRMemoryNotificationCallback 接口