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


Метод IHostTaskManager::LeaveRuntime

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

Важное примечаниеВажно

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

HRESULT LeaveRuntime (
    [in] SIZE_T target
);

Параметры

  • target
    [in] Адрес в сопоставленном переносимом исполняемом (PE) файле неуправляемой функции, которую необходимо выполнить.

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

HRESULT

Описание

S_OK

Метод LeaveRuntime успешно возвратил значение.

HOST_E_CLRNOTAVAILABLE

Среда 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

Требования

Платформы: см. раздел Требования к системе для .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

См. также

Ссылки

Интерфейс ICLRTask

Интерфейс ICLRTaskManager

Интерфейс IHostTask

Интерфейс IHostTaskManager