Metodo ICLRSyncManager::GetMonitorOwner
Ottiene l'istanza di IHostTask proprietaria del monitor identificato dal cookie specificato.
HRESULT GetMonitorOwner (
[in] SIZE_T cookie,
[out] IHostTask *ppOwnerHostTask
);
Parametri
cookie
[in] Cookie associato al monitor.ppOwnerHostTask
[out] Puntatore all'istanza di IHostTask che possiede attualmente il monitor oppure null se nessuna attività ne è proprietaria.
Valore restituito
HRESULT |
Oggetto di descrizione |
---|---|
S_OK |
GetMonitorOwner ha restituito correttamente un valore. |
HOST_E_CLRNOTAVAILABLE |
Common Language Runtime non è stato caricato in un processo oppure si trova in uno stato in cui non è possibile eseguire codice gestito né elaborare correttamente la chiamata. |
HOST_E_TIMEOUT |
Timeout della chiamata. |
HOST_E_NOT_OWNER |
Il chiamante non è il proprietario del blocco. |
HOST_E_ABANDONED |
Un evento è stato annullato mentre un thread o un fiber bloccato era in attesa di tale evento. |
E_FAIL |
Si è verificato un errore irreversibile sconosciuto. Se un metodo restituisce E_FAIL, CLR non sarà più utilizzabile all'interno del processo. Le successive chiamate ai metodi di hosting restituiranno HOST_E_CLRNOTAVAILABLE. |
Note
In genere, l'host chiama GetMonitorOwner nell'ambito di un meccanismo di rilevamento dei deadlock. Il cookie è associato a un monitor quando viene creato tramite una chiamata a IHostSyncManager::CreateMonitorEvent.
Nota |
---|
Una chiamata eseguita per il rilascio dell'evento sottostante al monitor potrebbe causare un blocco, ma non un deadlock, se sul cookie associato al monitor è attualmente in corso una chiamata a questo metodo.Anche le altre attività potrebbero causare un blocco, se tentano di acquisire il monitor. |
Il metodo GetMonitorOwner restituisce sempre i risultati immediatamente e può essere chiamato in qualunque momento dopo una chiamata a CreateMonitorEvent. L'host non deve attendere finché un'attività rimane in attesa sull'evento.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: MSCorEE.h
Libreria: inclusa come risorsa in MSCorEE.dll
Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0