Udostępnij za pośrednictwem


ICLRSyncManager::CreateRWLockOwnerIterator — Metoda

Żądania, aby środowisko uruchomieniowe języka wspólnego (CLR) tworzyło iterator dla hosta w celu określenia zestawu zadań oczekujących na blokadę modułu zapisywania czytnika.

Składnia

HRESULT CreateRWLockOwnerIterator (  
    [in]  SIZE_T    cookie,  
    [out] SIZE_T   *pIterator  
);  

Parametry

cookie
[in] Plik cookie skojarzony z żądaną blokadą czytnika i zapisywania.

pIterator
[out] Wskaźnik do iteratora, który można przekazać do metod GetRWLockOwnerNext i DeleteRWLockOwnerIterator .

Wartość zwracana

HRESULT Opis
S_OK CreateRWLockOwnerIterator zwrócone pomyślnie.
HOST_E_CLRNOTAVAILABLE ClR nie został załadowany do procesu lub CLR jest w stanie, w którym nie może uruchomić zarządzanego kodu lub przetworzyć wywołania pomyślnie.
HOST_E_TIMEOUT Upłynął limit czasu wywołania.
HOST_E_NOT_OWNER Obiekt wywołujący nie jest właścicielem blokady.
HOST_E_ABANDONED Zdarzenie zostało anulowane, gdy zablokowany wątek lub światłowod czekał na nie.
E_FAIL Wystąpił nieznany katastrofalny błąd. Gdy metoda zwraca E_FAIL, clR nie będzie już można jej używać w ramach tego procesu. Kolejne wywołania metod hostingu zwracają HOST_E_CLRNOTAVAILABLE.
HOST_E_INVALIDOPERATION CreateRWLockOwnerIterator została wywołana w wątku, który jest obecnie uruchomiony kod zarządzany.

Uwagi

Hosty zwykle nazywają CreateRWLockOwnerIteratormetody , DeleteRWLockOwnerIteratori GetRWLockOwnerNext podczas wykrywania zakleszczenia. Host jest odpowiedzialny za zapewnienie, że blokada czytnika i zapisującego jest nadal prawidłowa, ponieważ CLR nie podejmuje próby utrzymania blokady czytnika i zapisywania przy życiu. Dla hosta jest dostępnych kilka strategii zapewniających ważność blokady:

  • Host może blokować wywołania wydania blokady czytnika i zapisywania (na przykład IHostSemaphore::ReleaseSemaphore) przy jednoczesnym upewnieniu się, że ten blok nie powoduje zakleszczenia.

  • Host może zablokować zakończenie oczekiwania na obiekt zdarzenia skojarzony z blokadą modułu zapisywania czytnika, ponownie upewniając się, że ten blok nie powoduje zakleszczenia.

Uwaga

CreateRWLockOwnerIterator Element musi być wywoływany tylko w wątkach, które obecnie są wykonywane jako niezarządzany kod.

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: MSCorEE.h

Biblioteki: Uwzględnione jako zasób w MSCorEE.dll

wersje .NET Framework: dostępne od wersji 2.0

Zobacz też