ReaderWriterLockSlim.TryEnterUpgradeableReadLock 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.
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.
Objek ReaderWriterLockSlim telah dibuang.
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 .
Objek ReaderWriterLockSlim telah dibuang.
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.