Bahasa

ReaderWriterLockSlim.ExitWriteLock Metode

Definisi

Mengurangi jumlah rekursi untuk mode tulis, dan keluar dari mode tulis jika jumlah yang dihasilkan adalah 0 (nol).

public:
 void ExitWriteLock();
public void ExitWriteLock();
member this.ExitWriteLock : unit -> unit
Public Sub ExitWriteLock ()

Pengecualian

Utas saat ini belum memasukkan kunci dalam mode tulis.

Contoh

Contoh berikut menunjukkan cara menggunakan finally blok untuk menjalankan ExitWriteLock metode , memastikan bahwa pemanggil keluar dari mode tulis. Metode yang ditunjukkan dalam contoh menambahkan pasangan kunci/nilai baru ke cache yang disinkronkan. Jika kunci sudah ada di cache, pengecualian yang dilemparkan oleh bagian dalam Dictionary<TKey,TValue> diizinkan untuk mengakhiri metode . Metode EnterWriteLock ini digunakan untuk memasukkan kunci dalam mode tulis.

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 void Add(int key, string value)
{
    cacheLock.EnterWriteLock();
    try
    {
        innerCache.Add(key, value);
    }
    finally
    {
        cacheLock.ExitWriteLock();
    }
}
Public Sub Add(ByVal key As Integer, ByVal value As String)
    cacheLock.EnterWriteLock()
    Try
        innerCache.Add(key, value)
    Finally
        cacheLock.ExitWriteLock()
    End Try
End Sub

Keterangan

Metode ini tidak sensitif terhadap urutan rekursi. Misalnya, jika utas memasuki kunci dalam mode yang dapat ditingkatkan dan kemudian memasuki kunci dalam mode tulis, urutan di mana utas keluar 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.

Berlaku untuk