Bagikan melalui


Metode ICLRSyncManager::CreateRWLockOwnerIterator

Meminta agar runtime bahasa umum (CLR) membuat iterator untuk digunakan host untuk menentukan serangkaian tugas yang menunggu kunci reader-writer.

Sintaks

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

Parameter

cookie
[masuk] Cookie yang terkait dengan kunci reader-writer yang diinginkan.

pIterator
[keluar] Penunjuk ke iterator yang dapat diteruskan ke metode GetRWLockOwnerNext dan DeleteRWLockOwnerIterator.

Tampilkan Nilai

HRESULT Deskripsi
S_OK CreateRWLockOwnerIterator berhasil dikembalikan.
HOST_E_CLRNOTAVAILABLE Runtime bahasa umum belum dimuat ke dalam proses, atau runtime bahasa umum dalam status yaitu tidak dapat menjalankan kode aman atau memproses panggilan dengan sukses.
HOST_E_TIMEOUT Waktu panggilan habis.
HOST_E_NOT_OWNER Pemanggil tidak memiliki kunci.
HOST_E_ABANDONED Peristiwa dibatalkan saat rangkaian atau fiber yang diblokir sedang menunggunya.
E_FAIL Kegagalan katastrofe yang tidak diketahui terjadi. Saat metode menampilkan E_FAIL, CLR tidak lagi dapat digunakan dalam proses. Panggilan berikutnya ke metode hosting menampilkan HOST_E_CLRNOTAVAILABLE.
HOST_E_INVALIDOPERATION CreateRWLockOwnerIterator dipanggil pada rangkaian yang saat ini menjalankan kode aman.

Keterangan

Host biasanya memanggil CreateRWLockOwnerIteratormetode, DeleteRWLockOwnerIterator, dan GetRWLockOwnerNext selama deteksi kebuntuan. host bertanggung jawab untuk memastikan bahwa kunci reader-writer masih valid, karena runtime bahasa umum tidak berusaha untuk menjaga reader-writer tetap hidup. Beberapa strategi tersedia bagi host untuk memastikan validitas kunci:

  • Host dapat memblokir panggilan rilis pada kunci reader-writer (misalnya, IHostSemaphore::ReleaseSemaphore) sambil memastikan bahwa blok ini tidak menyebabkan kebuntuan.

  • Host dapat memblokir pintu keluar dari menunggu objek acara yang terkait dengan kunci reader-writer, sekali lagi memastikan bahwa blok ini tidak menyebabkan kebuntuan.

Catatan

CreateRWLockOwnerIterator harus dipanggil hanya pada rangkaian yang saat ini menjalankan kode yang tidak dikelola.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: MSCorEE.h

Pustaka: Disertakan sebagai sumber daya di MSCorEE.dll

Versi .NET Framework: Tersedia mulai dari 2.0

Lihat juga