IHostTaskManager::LeaveRuntime 方法
通知主機,目前執行中的工作即將離開通用語言執行平台 (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 | 封鎖的執行緒或 Fiber 在其上等候時,事件遭到取消。 |
E_FAIL | 發生未知的重大失敗。 如果方法傳回 E_FAIL,則 CLR 就無法再用於處理序。 後續對裝載方法發出的呼叫會傳回 HOST_E_CLRNOTAVAILABLE。 |
E_OUTOFMEMORY | 記憶體不足,無法完成所要求的配置。 |
備註
對非受控程式碼的雙向呼叫序列可以巢狀化。 例如,下列清單描述對 LeaveRuntime
、IHostTaskManager::ReverseEnterRuntime、IHostTaskManager::ReverseLeaveRuntime 和 IHostTaskManager::EnterRuntime
的呼叫序列允許主機識別巢狀圖層的假設情況。
動作 | 對應的方法呼叫 |
---|---|
受控 Visual Basic 可執行檔會使用平台叫用呼叫以 C 撰寫的非受控函式。 | IHostTaskManager::LeaveRuntime |
非受控 C 函式會在以 C# 撰寫的受控 DLL 中呼叫方法。 | IHostTaskManager::ReverseEnterRuntime |
受控 C# 函式會呼叫以 C 撰寫的另一個非受控函式,而且使用平台叫用。 | IHostTaskManager::LeaveRuntime |
第二個非受控函式會讓執行回到 C# 函式。 | IHostTaskManager::EnterRuntime |
C# 函式會讓執行回到第一個非受控函式。 | IHostTaskManager::ReverseLeaveRuntime |
第一個非受控函式會讓執行回到 Visual Basic 程式。 | IHostTaskManager::EnterRuntime |
規格需求
平台:請參閱系統需求。
標題: MSCorEE.h
程式庫:包含作為 MSCorEE.dll 中的資源
.NET Framework版本:自 2.0 起提供