Поделиться через


Метод IHostTaskManager::LeaveRuntime

Уведомляет узел о том, что выполняющаяся в данный момент задача вот-вот покинет среду CLR и введет неуправляемый код.

Важно!

Соответствующий вызов IHostTaskManager::EnterRuntime уведомляет узел о том, что выполняющаяся в данный момент задача повторно вводит управляемый код.

Синтаксис

HRESULT LeaveRuntime (  
    [in] SIZE_T target  
);  

Параметры

target
[in] Адрес в сопоставленном переносимом исполняемом файле вызываемой неуправляемой функции.

Возвращаемое значение

HRESULT Описание:
S_OK LeaveRuntime возвращается успешно.
HOST_E_CLRNOTAVAILABLE Среда CLR не была загружена в процесс или среда CLR находится в состоянии, в котором она не может выполнить управляемый код или обработать вызов.
HOST_E_TIMEOUT Истекло время ожидания звонка.
HOST_E_NOT_OWNER Вызывающий объект не является владельцем блокировки.
HOST_E_ABANDONED Событие было отменено во время ожидания заблокированного потока или волокна.
E_FAIL Произошла неизвестная катастрофическая ошибка. Когда метод возвращает E_FAIL, среда CLR больше не поддерживается в процессе. Последующие вызовы методов размещения возвращают HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Недостаточно памяти для выполнения запрошенного выделения.

Комментарии

Последовательности вызовов в неуправляемый код и из неуправляемого кода могут быть вложенными. Например, в приведенном ниже списке описывается гипотетическая ситуация, в которой последовательность вызовов LeaveRuntime, IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime позволяет IHostTaskManager::EnterRuntime узлу идентифицировать вложенные слои.

Действие Вызов соответствующего метода
Управляемый исполняемый файл Visual Basic вызывает неуправляемую функцию, написанную на языке C, с помощью вызова платформы. IHostTaskManager::LeaveRuntime
Неуправляемая функция C вызывает метод в управляемой библиотеке DLL, написанной на C#. IHostTaskManager::ReverseEnterRuntime
Управляемая функция C# вызывает другую неуправляемую функцию, написанную на языке C, также используя вызов платформы. IHostTaskManager::LeaveRuntime
Вторая неуправляемая функция возвращает выполнение функции C#. IHostTaskManager::EnterRuntime
Функция C# возвращает выполнение первой неуправляемой функции. IHostTaskManager::ReverseLeaveRuntime
Первая неуправляемая функция возвращает выполнение в программу Visual Basic. IHostTaskManager::EnterRuntime

Требования

Платформы: см. раздел Требования к системе.

Заголовка: MSCorEE.h

Библиотека: Включено в качестве ресурса в MSCorEE.dll

версии платформа .NET Framework: доступно с версии 2.0

См. также раздел