ReaderWriterLockSlim.ExitReadLock Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengurangi jumlah rekursi untuk mode baca, dan keluar dari mode baca jika jumlah yang dihasilkan adalah 0 (nol).
public:
void ExitReadLock();
public void ExitReadLock();
member this.ExitReadLock : unit -> unit
Public Sub ExitReadLock ()
Pengecualian
Utas saat ini belum memasuki kunci dalam mode baca.
Contoh
Contoh berikut menunjukkan cara menggunakan finally blok untuk menjalankan ExitReadLock metode , memastikan bahwa penelepon keluar dari mode baca. Metode yang ditunjukkan dalam contoh mengambil nilai yang terkait dengan kunci. Jika kunci tidak ditemukan, pengecualian yang dilemparkan oleh bagian dalam Dictionary<TKey,TValue> diizinkan untuk mengakhiri metode . Metode EnterReadLock ini digunakan untuk memasuki mode baca.
Kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk ReaderWriterLockSlim kelas .
private ReaderWriterLockSlim cacheLock = new ReaderWriterLockSlim();
private Dictionary<int, string> innerCache = new Dictionary<int, string>();
Private cacheLock As New ReaderWriterLockSlim()
Private innerCache As New Dictionary(Of Integer, String)
public string Read(int key)
{
cacheLock.EnterReadLock();
try
{
return innerCache[key];
}
finally
{
cacheLock.ExitReadLock();
}
}
Public Function Read(ByVal key As Integer) As String
cacheLock.EnterReadLock()
Try
Return innerCache(key)
Finally
cacheLock.ExitReadLock()
End Try
End Function
Keterangan
Metode ini tidak sensitif terhadap urutan rekursi. Misalnya, jika utas memasukkan kunci dalam mode yang dapat ditingkatkan dan kemudian memasuki kunci dalam mode baca, urutan keluarnya utas dari dua mode tidak masalah. Jika kunci memungkinkan rekursi, utas dapat memasukkan kunci dalam mode tulis lalu memasukkannya secara rekursif dalam mode baca; urutan di mana utas keluar dari mode baca dan mode tulis tidak masalah.
Keluar dari kunci mungkin menandakan utas tunggu lainnya.