Condividi tramite


Metodo IHostTaskManager::LeaveRuntime

Notifica all'host che l'attività attualmente in esecuzione sta per lasciare Common Language Runtime (CLR) e immettere codice non gestito.

Importante

Una chiamata corrispondente a IHostTaskManager::EnterRuntime notifica all'host che l'attività attualmente in esecuzione sta reimmettendo codice gestito.

Sintassi

HRESULT LeaveRuntime (  
    [in] SIZE_T target  
);  

Parametri

target
[in] Indirizzo all'interno del file eseguibile portabile mappato della funzione non gestita da chiamare.

Valore restituito

HRESULT Descrizione
S_OK LeaveRuntime restituito correttamente.
HOST_E_CLRNOTAVAILABLE CLR non è stato caricato in un processo oppure CLR si trova in uno stato in cui non può eseguire codice gestito o elaborare correttamente la chiamata.
HOST_E_TIMEOUT Timeout della chiamata.
HOST_E_NOT_OWNER Il chiamante non possiede il blocco.
HOST_E_ABANDONED Un evento è stato annullato durante l'attesa di un thread o di una fibra bloccata.
E_FAIL Si è verificato un errore irreversibile sconosciuto. Quando un metodo restituisce E_FAIL, CLR non è più utilizzabile all'interno del processo. Le chiamate successive ai metodi di hosting restituiscono HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Memoria insufficiente per completare l'allocazione richiesta.

Commenti

Le sequenze di chiamata da e verso il codice non gestito possono essere annidate. Ad esempio, l'elenco seguente descrive una situazione ipotetica in cui la sequenza di chiamate a LeaveRuntime, IHostTaskManager::ReverseEnterRuntime, IHostTaskManager::ReverseLeaveRuntime e IHostTaskManager::EnterRuntime consente all'host di identificare i livelli annidati.

Azione Chiamata al metodo corrispondente
Un eseguibile di Visual Basic gestito chiama una funzione non gestita scritta in C tramite platform invoke. IHostTaskManager::LeaveRuntime
La funzione C non gestita chiama un metodo in una DLL gestita scritta in C#. IHostTaskManager::ReverseEnterRuntime
La funzione C# gestita chiama un'altra funzione non gestita scritta in C, usando anche platform invoke. IHostTaskManager::LeaveRuntime
La seconda funzione non gestita restituisce l'esecuzione alla funzione C#. IHostTaskManager::EnterRuntime
La funzione C# restituisce l'esecuzione alla prima funzione non gestita. IHostTaskManager::ReverseLeaveRuntime
La prima funzione non gestita restituisce l'esecuzione al programma Visual Basic. IHostTaskManager::EnterRuntime

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: Incluso come risorsa in MSCorEE.dll

Versioni di .NET Framework: Disponibile dalla versione 2.0

Vedi anche