Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Уведомляет узел о том, что выполняющаяся в данный момент задача вот-вот покинет среду 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