共用方式為


IHostTaskManager::LeaveRuntime 方法

告知主應用程式,目前正在執行的工作即將要離開 Common Language Runtime (CLR) 並進入 Unmanaged 程式碼。

重要事項重要事項

IHostTaskManager::EnterRuntime 的對應呼叫會告知主應用程式,目前正在執行的工作正要重新進入 Managed 程式碼。

HRESULT LeaveRuntime (
    [in] SIZE_T target
);

參數

  • target
    [in] 在要呼叫的 Unmanaged 函式之對應可移植執行檔內的位址。

傳回值

HRESULT

描述

S_OK

LeaveRuntime 已成功傳回。

HOST_E_CLRNOTAVAILABLE

CLR 尚未載入至處理序中,或者此 CLR 目前的狀態無法執行 Managed 程式碼或成功處理呼叫。

HOST_E_TIMEOUT

呼叫已逾時。

HOST_E_NOT_OWNER

呼叫端不具備鎖定功能。

HOST_E_ABANDONED

已封鎖執行緒或 Fiber 在等候事件時,該事件已遭取消。

E_FAIL

發生未知的重大錯誤。 當方法傳回 E_FAIL 時,便無法在處理序內使用 CLR。 對裝載方法的後續呼叫會傳回 HOST_E_CLRNOTAVAILABLE。

E_OUTOFMEMORY

可用的記憶體不足,無法完成所要求的配置。

備註

與 Unmanaged 程式碼之間往來的呼叫序列可以是巢狀結構。 例如,下列清單將描述一個假設性情況,其中對 LeaveRuntime, IHostTaskManager::ReverseEnterRuntimeIHostTaskManager::ReverseLeaveRuntimeIHostTaskManager::EnterRuntime 呼叫的序列允許主應用程式識別巢狀層。

動作

對應的方法呼叫

Managed Visual Basic 的可執行檔會使用平台叫用,呼叫以 C 撰寫的 Unmanaged 函式。

IHostTaskManager::LeaveRuntime

Unmanaged C 函式會呼叫 Managed DLL 中以 C# 撰寫的方法。

IHostTaskManager::ReverseEnterRuntime

Managed C# 函式也會利用平台叫用,呼叫另一個以 C 撰寫的 Unmanaged 函式。

IHostTaskManager::LeaveRuntime

第二個 Unmanaged 函式會將執行傳回 C# 函式。

IHostTaskManager::EnterRuntime

C# 函式會將執行傳回第一個 Unmanaged 函式。

IHostTaskManager::ReverseLeaveRuntime

第一個 Unmanaged 函式會將執行傳回 Visual Basic 程式。

IHostTaskManager::EnterRuntime

需求

**平台:**請參閱 .NET Framework 系統需求

**標頭:**MSCorEE.h

程式庫:包含做為 MSCorEE.dll 中的資源

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

請參閱

參考

ICLRTask 介面

ICLRTaskManager 介面

IHostTask 介面

IHostTaskManager 介面