Перечисление 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 с пакетом обновления 1 (SP1), 3.5, 3.0 с пакетом обновления 1 (SP1), 3.0, 2.0 с пакетом обновления 1 (SP1), 2.0
См. также
Ссылки
Интерфейс ICLRMemoryNotificationCallback