Udostępnij za pośrednictwem


IHostTaskManager::LeaveRuntime — Metoda

Powiadamia hosta, że aktualnie wykonywane zadanie ma opuścić środowisko uruchomieniowe języka wspólnego (CLR) i wprowadzić niezarządzany kod.

Ważne

Odpowiednie wywołanie elementu IHostTaskManager::EnterRuntime powiadamia hosta, że aktualnie wykonywane zadanie ponownie wprowadza kod zarządzany.

Składnia

HRESULT LeaveRuntime (  
    [in] SIZE_T target  
);  

Parametry

target
[in] Adres w zamapowanym przenośnym pliku wykonywalnego niezarządzanej funkcji do wywołania.

Wartość zwracana

HRESULT Opis
S_OK LeaveRuntime zwrócone pomyślnie.
HOST_E_CLRNOTAVAILABLE ClR nie został załadowany do procesu lub CLR jest w stanie, w którym nie może uruchomić zarządzanego kodu lub przetworzyć wywołania pomyślnie.
HOST_E_TIMEOUT Upłynął limit czasu wywołania.
HOST_E_NOT_OWNER Obiekt wywołujący nie jest właścicielem blokady.
HOST_E_ABANDONED Zdarzenie zostało anulowane, gdy zablokowany wątek lub światłowod czekał na nie.
E_FAIL Wystąpił nieznany katastrofalny błąd. Gdy metoda zwraca E_FAIL, clR nie będzie już można jej używać w ramach tego procesu. Kolejne wywołania metod hostingu zwracają HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Za mało pamięci, aby ukończyć żądaną alokację.

Uwagi

Sekwencje wywołań do i z niezarządzanego kodu można zagnieżdżać. Na przykład poniższa lista opisuje hipotetyczną sytuację, w której sekwencja wywołań do LeaveRuntimeelementu , IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime i IHostTaskManager::EnterRuntime umożliwia hostowi zidentyfikowanie zagnieżdżonych warstw.

Akcja Odpowiednie wywołanie metody
Zarządzany plik wykonywalny języka Visual Basic wywołuje niezarządzaną funkcję napisaną w języku C przy użyciu wywołania platformy. IHostTaskManager::LeaveRuntime
Niezarządzana funkcja języka C wywołuje metodę w zarządzanej bibliotece DLL napisanej w języku C#. IHostTaskManager::ReverseEnterRuntime
Zarządzana funkcja języka C# wywołuje inną niezarządzaną funkcję napisaną w języku C, również przy użyciu wywołania platformy. IHostTaskManager::LeaveRuntime
Druga niezarządzana funkcja zwraca wykonanie do funkcji języka C#. IHostTaskManager::EnterRuntime
Funkcja języka C# zwraca wykonywanie do pierwszej niezarządzanej funkcji. IHostTaskManager::ReverseLeaveRuntime
Pierwsza niezarządzana funkcja zwraca wykonanie do programu Visual Basic. IHostTaskManager::EnterRuntime

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: MSCorEE.h

Biblioteki: Uwzględnione jako zasób w MSCorEE.dll

wersje .NET Framework: dostępne od wersji 2.0

Zobacz też