ICLRSyncManager::GetMonitorOwner (Método)
Obtiene la instancia de IHostTask propietaria del monitor identificado por la cookie especificada.
Sintaxis
HRESULT GetMonitorOwner (
[in] SIZE_T cookie,
[out] IHostTask *ppOwnerHostTask
);
Parámetros
cookie
[in] Cookie asociada al monitor.
ppOwnerHostTask
[out] Puntero al IHostTask
que posee actualmente el monitor, o null si ninguna tarea tiene propiedad.
Valor devuelto
HRESULT | Descripción |
---|---|
S_OK | GetMonitorOwner se devolvió correctamente. |
HOST_E_CLRNOTAVAILABLE | Si se devuelve este valor, significa que Common Language Runtime (CLR) no se ha cargado en un proceso o se encuentra en un estado en el que no puede ejecutar código administrado ni procesar la llamada correctamente. |
HOST_E_TIMEOUT | Se agotó el tiempo de espera de la llamada. |
HOST_E_NOT_OWNER | El autor de la llamada no es el propietario del bloqueo. |
HOST_E_ABANDONED | Se canceló un evento mientras que una fibra o subproceso que estaba bloqueado lo estaba esperando. |
E_FAIL | Ocurrió un error grave desconocido. Si un método devuelve el valor E_FAIL, el CLR ya no se podrá usar en el proceso. Las llamadas que se hagan a los métodos de hospedaje posteriormente devolverán el valor HOST_E_CLRNOTAVAILABLE. |
Comentarios
Normalmente, el host llama GetMonitorOwner
como parte de un mecanismo de detección de interbloqueos. La cookie está asociada a un monitor cuando se crea mediante una llamada a IHostSyncManager::CreateMonitorEvent.
Nota
Una llamada para liberar el evento subyacente del monitor podría bloquearse, pero no interbloqueo, si una llamada a este método está actualmente en vigor en la cookie asociada a ese monitor. Otras tareas también pueden bloquearse si intentan adquirir este monitor.
GetMonitorOwner
siempre devuelve inmediatamente y se puede llamar a cualquier momento después de una llamada a CreateMonitorEvent
. El host no necesita esperar hasta que una tarea esté esperando el evento.
Requisitos
Plataformas: Vea Requisitos de sistema.
Encabezado: MSCorEE.h
Biblioteca: incluida como recurso en MSCorEE.dll
Versiones de .NET Framework: disponible a partir de la versión 2.0