ICLRSyncManager::GetMonitorOwner, méthode
Obtient l’instance IHostTask qui possède le moniteur identifié par le cookie spécifié.
Syntaxe
HRESULT GetMonitorOwner (
[in] SIZE_T cookie,
[out] IHostTask *ppOwnerHostTask
);
Paramètres
cookie
[in] Cookie associé au moniteur.
ppOwnerHostTask
[out] Pointeur vers l’instance IHostTask
qui possède actuellement le moniteur, ou null si aucune tâche n’en a la propriété.
Valeur de retour
HRESULT | Description |
---|---|
S_OK | GetMonitorOwner retourné. |
HOST_E_CLRNOTAVAILABLE | Le CLR n’a pas été chargé dans un processus ou son état ne lui permet pas d’exécuter du code managé ni de traiter l’appel correctement. |
HOST_E_TIMEOUT | L’appel a expiré. |
HOST_E_NOT_OWNER | L’appelant n’est pas propriétaire du verrou. |
HOST_E_ABANDONED | Un événement a été annulé alors qu’un thread ou une fibre bloqué l’attendait. |
E_FAIL | Une défaillance catastrophique inconnue s’est produite. Quand une méthode retourne E_FAIL, le CLR n’est plus utilisable au sein du processus. Les appels suivants aux méthodes d’hébergement renvoient HOST_E_CLRNOTAVAILABLE. |
Notes
L’hôte appelle généralement GetMonitorOwner
dans le cadre d’un mécanisme de détection d’interblocage. Le cookie est associé à un moniteur lorsqu’il est créé à l’aide d’un appel à la méthode IHostSyncManager::CreateMonitorEvent.
Notes
Un appel pour libérer l’événement sous-jacent au moniteur pourrait entraîner un blocage, mais pas un interblocage, si un appel à cette méthode est actuellement en vigueur sur le cookie associé à ce moniteur. D’autres tâches pourraient également bloquer si elles tentent d’acquérir ce moniteur.
GetMonitorOwner
retourne toujours immédiatement et peut être appelé à tout moment après un appel à CreateMonitorEvent
. L’hôte n’a pas besoin d’attendre qu’une tâche soit en attente sur l’événement.
Spécifications
Plateformes : Consultez Configuration requise.
En-tête : MSCorEE.h
Bibliothèque : incluse en tant que ressource dans MsCorEE.dll
Versions de .NET Framework : Disponible depuis la version 2.0