ICLRSyncManager::CreateRWLockOwnerIterator – metoda
Vyžaduje, aby modul CLR (Common Language Runtime) vytvořil pro hostitele iterátor, který použije k určení sady úloh čekajících na zámek čtenář-zapisovač.
Syntaxe
HRESULT CreateRWLockOwnerIterator (
[in] SIZE_T cookie,
[out] SIZE_T *pIterator
);
Parametry
cookie
[v] Soubor cookie přidružený k požadovanému zámku čtečka-zapisovač.
pIterator
[out] Ukazatel na iterátor, který lze předat GetRWLockOwnerNext a DeleteRWLockOwnerIterator metody.
Návratová hodnota
HRESULT | Description |
---|---|
S_OK | CreateRWLockOwnerIterator úspěšně vráceno. |
HOST_E_CLRNOTAVAILABLE | ClR nebyl načten do procesu nebo clr je ve stavu, ve kterém nemůže spustit spravovaný kód nebo úspěšně zpracovat volání. |
HOST_E_TIMEOUT | Časový limit hovoru vypršel. |
HOST_E_NOT_OWNER | Volající zámek nevlastní. |
HOST_E_ABANDONED | Událost byla zrušena, zatímco na ni čekalo blokované vlákno nebo vlákno. |
E_FAIL | Došlo k neznámému závažnému selhání. Když metoda vrátí E_FAIL, clr již není možné v rámci procesu použít. Následná volání metod hostování vrátí HOST_E_CLRNOTAVAILABLE. |
HOST_E_INVALIDOPERATION | CreateRWLockOwnerIterator byla volána ve vlákně, ve kterém je aktuálně spuštěn spravovaný kód. |
Poznámky
Hostitelé obvykle volají CreateRWLockOwnerIterator
metody , DeleteRWLockOwnerIterator
a GetRWLockOwnerNext
během detekce vzájemného zablokování. Hostitel zodpovídá za to, že zámek čtenář-zapisovač je stále platný, protože modul CLR se nepokouší zámek čtenář-zapisovač zachovat. Pro hostitele je k dispozici několik strategií, jak zajistit platnost zámku:
Hostitel může blokovat volání vydané verze na zámku čtenář-zapisovat (například IHostSemaphore::ReleaseSemaphore) a zároveň zajistit, aby tento blok nezpůsoboval vzájemné zablokování.
Hostitel může blokovat ukončení čekání na objekt události přidružený k zámku čtenář-zapisovač a znovu zajistit, že tento blok nezpůsobí vzájemné zablokování.
Poznámka
CreateRWLockOwnerIterator
musí být volána pouze ve vláknech, která aktuálně spouští nespravovaný kód.
Požadavky
Platformy: Viz Požadavky na systém.
Záhlaví: MSCorEE.h
Knihovny: Zahrnutý jako prostředek v MSCorEE.dll
Verze rozhraní .NET Framework: K dispozici od verze 2.0