Bagikan melalui


ReaderWriterLockSlim.TryEnterUpgradeableReadLock Metode

Definisi

Mencoba memasukkan kunci dalam mode yang dapat ditingkatkan, dengan batas waktu opsional.

Overload

TryEnterUpgradeableReadLock(Int32)

Mencoba memasukkan kunci dalam mode yang dapat ditingkatkan, dengan batas waktu opsional.

TryEnterUpgradeableReadLock(TimeSpan)

Mencoba memasukkan kunci dalam mode yang dapat ditingkatkan, dengan batas waktu opsional.

TryEnterUpgradeableReadLock(Int32)

Sumber:
ReaderWriterLockSlim.cs
Sumber:
ReaderWriterLockSlim.cs
Sumber:
ReaderWriterLockSlim.cs

Mencoba memasukkan kunci dalam mode yang dapat ditingkatkan, dengan batas waktu opsional.

public:
 bool TryEnterUpgradeableReadLock(int millisecondsTimeout);
public bool TryEnterUpgradeableReadLock (int millisecondsTimeout);
member this.TryEnterUpgradeableReadLock : int -> bool
Public Function TryEnterUpgradeableReadLock (millisecondsTimeout As Integer) As Boolean

Parameter

millisecondsTimeout
Int32

Jumlah milidetik untuk menunggu, atau -1 (Infinite) untuk menunggu tanpa batas waktu.

Mengembalikan

true jika utas panggilan memasuki mode yang dapat ditingkatkan, jika tidak, false.

Pengecualian

Properti RecursionPolicy adalah NoRecursion dan utas saat ini telah memasukkan kunci.

-atau-

Utas saat ini awalnya memasuki kunci dalam mode baca, dan karenanya mencoba memasuki mode yang dapat ditingkatkan akan menciptakan kemungkinan kebuntuan.

-atau-

Jumlah rekursi akan melebihi kapasitas penghitung. Batasnya sangat besar sehingga aplikasi tidak boleh menemukannya.

Nilai millisecondsTimeout negatif, tetapi tidak sama dengan Infinite (-1), yang merupakan satu-satunya nilai negatif yang diizinkan.

Keterangan

Jika millisecondsTimeout adalah 0 (nol), metode ini memeriksa status kunci dan segera kembali false jika status yang diinginkan tidak tersedia.

Gunakan mode yang dapat ditingkatkan ketika utas biasanya mengakses sumber daya yang dilindungi oleh ReaderWriterLockSlim mode baca, tetapi mungkin perlu memasuki mode tulis jika kondisi tertentu terpenuhi. Utas dalam mode yang dapat ditingkatkan dapat ditingkatkan ke mode tulis atau turun tingkat ke mode baca.

Hanya satu utas yang dapat memasuki kunci dalam mode yang dapat ditingkatkan pada waktu tertentu. Jika utas dalam mode yang dapat ditingkatkan, dan tidak ada utas yang menunggu untuk memasuki mode tulis, sejumlah utas lain dapat memasuki mode baca, bahkan jika ada utas yang menunggu untuk memasuki mode yang dapat ditingkatkan.

Jika satu atau beberapa utas menunggu untuk memasuki mode tulis, utas yang memanggil metode memblokir hingga utas tersebut TryEnterUpgradeableReadLock kehabisan waktu atau memasuki mode tulis lalu keluar darinya, atau sampai interval waktu habis utas panggilan sendiri kedaluwarsa.

Catatan

Jika kunci memungkinkan rekursi, utas yang telah memasuki kunci dalam mode yang dapat ditingkatkan dapat memasuki mode yang dapat ditingkatkan secara rekursif, bahkan jika utas lain menunggu untuk memasuki mode tulis.

Berlaku untuk

TryEnterUpgradeableReadLock(TimeSpan)

Sumber:
ReaderWriterLockSlim.cs
Sumber:
ReaderWriterLockSlim.cs
Sumber:
ReaderWriterLockSlim.cs

Mencoba memasukkan kunci dalam mode yang dapat ditingkatkan, dengan batas waktu opsional.

public:
 bool TryEnterUpgradeableReadLock(TimeSpan timeout);
public bool TryEnterUpgradeableReadLock (TimeSpan timeout);
member this.TryEnterUpgradeableReadLock : TimeSpan -> bool
Public Function TryEnterUpgradeableReadLock (timeout As TimeSpan) As Boolean

Parameter

timeout
TimeSpan

Interval untuk menunggu, atau -1 milidetik untuk menunggu tanpa batas waktu.

Mengembalikan

true jika utas panggilan memasuki mode yang dapat ditingkatkan, jika tidak, false.

Pengecualian

Properti RecursionPolicy adalah NoRecursion dan utas saat ini telah memasukkan kunci.

-atau-

Utas saat ini awalnya memasuki kunci dalam mode baca, dan karenanya mencoba memasuki mode yang dapat ditingkatkan akan menciptakan kemungkinan kebuntuan.

-atau-

Jumlah rekursi akan melebihi kapasitas penghitung. Batasnya sangat besar sehingga aplikasi tidak boleh menemukannya.

Nilai timeout negatif, tetapi tidak sama dengan -1 milidetik, yang merupakan satu-satunya nilai negatif yang diizinkan.

-atau-

Nilai timeout lebih besar dari Milidetik Int32.MaxValue .

Keterangan

Jika timeout adalah 0 (nol), metode ini memeriksa status kunci dan segera kembali false jika status yang diinginkan tidak tersedia.

Gunakan mode yang dapat ditingkatkan ketika utas biasanya mengakses sumber daya yang dilindungi oleh ReaderWriterLockSlim dalam mode baca, tetapi mungkin perlu memasuki mode tulis jika kondisi tertentu terpenuhi. Utas dalam mode yang dapat ditingkatkan dapat ditingkatkan ke mode tulis atau turun tingkat ke mode baca.

Hanya satu utas yang dapat memasuki kunci dalam mode yang dapat ditingkatkan pada waktu tertentu. Jika utas dalam mode yang dapat ditingkatkan, dan tidak ada utas yang menunggu untuk memasuki mode tulis, sejumlah utas lain dapat memasuki mode baca, bahkan jika ada utas yang menunggu untuk memasuki mode yang dapat ditingkatkan.

Jika satu atau beberapa utas menunggu untuk memasuki mode tulis, utas yang memanggil metode memblokir hingga utas tersebut TryEnterUpgradeableReadLock kehabisan waktu atau memasuki mode tulis lalu keluar darinya, atau sampai interval waktu habis utas panggilan sendiri kedaluwarsa.

Catatan

Jika kunci memungkinkan rekursi, utas yang telah memasuki kunci dalam mode yang dapat ditingkatkan dapat memasuki mode yang dapat ditingkatkan secara rekursif, bahkan jika utas lain menunggu untuk memasuki mode tulis.

Berlaku untuk