ICLRSyncManager::GetMonitorOwner 方法
取得 IHostTask 執行個體,此執行個體擁有由指定之 Cookie 所識別的監視器。
HRESULT GetMonitorOwner (
[in] SIZE_T cookie,
[out] IHostTask *ppOwnerHostTask
);
參數
cookie
[in] 與監視器有關聯的 Cookie。ppOwnerHostTask
[out] 目前擁有此監視器之 IHostTask 的指標,如果沒有任何工作取得擁有權,則為 null。
傳回值
HRESULT |
描述 |
---|---|
S_OK |
GetMonitorOwner 已成功傳回。 |
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。 |
備註
主應用程式一般會在死結偵測機制中呼叫 GetMonitorOwner。 使用 IHostSyncManager::CreateMonitorEvent 呼叫建立 Cookie 時,Cookie 便會與監視器產生關聯。
注意事項 |
---|
如果對此方法的呼叫目前正在與該監視器有關的 Cookie 上作用,則釋放監視器之下的事件之呼叫可能會封鎖,但不會鎖死。如果其他工作嘗試取得此監視器,則它們可能也會封鎖。 |
GetMonitorOwner 永遠都會立即傳回,而且可以在呼叫 CreateMonitorEvent 之後隨時予以呼叫。 主應用程式不需要一直等候到有工作等候事件。
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**MSCorEE.h
程式庫:包含做為 MSCorEE.dll 中的資源
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0