Метод 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 находится в состоянии, в котором она не может выполнить управляемый код или обработать вызов. |
HOST_E_TIMEOUT | Истекло время ожидания звонка. |
HOST_E_NOT_OWNER | Вызывающий объект не является владельцем блокировки. |
HOST_E_ABANDONED | Событие было отменено во время ожидания заблокированного потока или волокна. |
E_FAIL | Произошла неизвестная катастрофическая ошибка. Когда метод возвращает E_FAIL, среда CLR больше не поддерживается в процессе. Последующие вызовы методов размещения возвращают HOST_E_CLRNOTAVAILABLE. |
Комментарии
Узел обычно вызывает GetMonitorOwner
как часть механизма обнаружения взаимоблокировок. Файл cookie связывается с монитором при его создании с помощью вызова IHostSyncManager::CreateMonitorEvent.
Примечание
Вызов для освобождения события, лежащего в основе монитора, может блокироваться, но не будет взаимоблокировкой, если вызов этого метода в настоящее время действует на файл cookie, связанный с этим монитором. Другие задачи также могут блокироваться при попытке получить этот монитор.
GetMonitorOwner
всегда возвращает немедленно и может быть вызван в любое время после вызова CreateMonitorEvent
метода . Ведущему приложению не нужно ждать, пока задача ожидает события.
Требования
Платформы: см. раздел Требования к системе.
Заголовка: MSCorEE.h
Библиотека: Включено в качестве ресурса в MSCorEE.dll
версии платформа .NET Framework: доступно с версии 2.0