Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Żą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