Aracılığıyla paylaş


ReaderWriterLockSlim.TryEnterReadLock Yöntem

Tanım

İsteğe bağlı bir zaman aşımı ile kilidi okuma moduna girmeye çalışır.

Aşırı Yüklemeler

TryEnterReadLock(Int32)

İsteğe bağlı bir tamsayı zaman aşımı ile kilidi okuma moduna girmeye çalışır.

TryEnterReadLock(TimeSpan)

İsteğe bağlı bir zaman aşımı ile kilidi okuma moduna girmeye çalışır.

TryEnterReadLock(Int32)

Kaynak:
ReaderWriterLockSlim.cs
Kaynak:
ReaderWriterLockSlim.cs
Kaynak:
ReaderWriterLockSlim.cs

İsteğe bağlı bir tamsayı zaman aşımı ile kilidi okuma moduna girmeye çalışır.

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

Parametreler

millisecondsTimeout
Int32

Beklenen milisaniye sayısı veya süresiz olarak beklemek için -1 (Infinite).

Döndürülenler

true çağıran iş parçacığı okuma moduna girdiyse, aksi takdirde , false.

Özel durumlar

RecursionPolicy özelliğidir NoRecursion ve geçerli iş parçacığı zaten kilidi girmiştir.

-veya-

Özyineleme sayısı sayacın kapasitesini aşabilir. Sınır, uygulamaların hiçbir zaman karşılaşmaması için o kadar büyük ki.

değeri millisecondsTimeout negatiftir, ancak izin verilen tek negatif değer olan (-1) değerine eşit Infinite değildir.

Açıklamalar

0 (sıfır) ise millisecondsTimeout , bu yöntem kilit durumunu denetler ve istenen durum kullanılamıyorsa hemen döndürür false .

Aynı anda birden çok iş parçacığı okuma moduna girebilir.

Bir veya daha fazla iş parçacığı yazma moduna girmeyi bekliyorsa, bu iş parçacıkları zaman aşımına uğrayana veya yazma moduna girene kadar veya çağıran iş parçacığının kendi zaman aşımı aralığı sona erene kadar yöntemini çağıran TryEnterReadLock bir iş parçacığı blokları.

Not

Kilit özyinelemeye izin veriyorsa, diğer iş parçacıkları yazma moduna girmeyi beklese bile, okuma moduna girmiş olan bir iş parçacığı yinelemeli olarak okuma moduna girebilir.

Diğer iş parçacıkları okuma modundayken bir iş parçacığı yükseltilebilir modda olabilir. Yükseltilebilir moda girmeyi bekleyen başka iş parçacıkları varsa ve yazma moduna girmeyi bekleyen iş parçacığı yoksa, yöntemini çağıran TryEnterReadLock iş parçacıkları hemen okuma moduna girer ve engellemez.

Şunlara uygulanır

TryEnterReadLock(TimeSpan)

Kaynak:
ReaderWriterLockSlim.cs
Kaynak:
ReaderWriterLockSlim.cs
Kaynak:
ReaderWriterLockSlim.cs

İsteğe bağlı bir zaman aşımı ile kilidi okuma moduna girmeye çalışır.

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

Parametreler

timeout
TimeSpan

Beklenen aralık veya süresiz olarak beklemek için -1 milisaniye.

Döndürülenler

true çağıran iş parçacığı okuma moduna girdiyse, aksi takdirde , false.

Özel durumlar

RecursionPolicy özelliğidir NoRecursion ve geçerli iş parçacığı zaten kilidi girmiştir.

-veya-

Özyineleme sayısı sayacın kapasitesini aşabilir. Sınır, uygulamaların hiçbir zaman karşılaşmaması için o kadar büyük ki.

değeri timeout negatiftir, ancak izin verilen tek negatif değer olan -1 milisaniyeye eşit değildir.

-veya-

değeri timeoutInt32.MaxValue milisaniyeden büyüktür.

Açıklamalar

0 (sıfır) ise timeout , bu yöntem kilit durumunu denetler ve istenen durum kullanılamıyorsa hemen döndürür false .

Birden çok iş parçacığı aynı anda kilidi okuma moduna girebilir.

Bir veya daha fazla iş parçacığı yazma moduna girmek için kuyruğa alınmışsa, bu iş parçacıkları zaman aşımına uğrayana veya yazma moduna geçene kadar veya çağıran iş parçacığının kendi zaman aşımı aralığı dolana kadar yöntemini çağıran TryEnterReadLock bir iş parçacığı bunu engeller.

Not

Kilit özyinelemeye izin veriyorsa, diğer iş parçacıkları yazma moduna girmeyi beklese bile, okuma moduna girmiş olan bir iş parçacığı yinelemeli olarak okuma moduna girebilir.

Diğer iş parçacıkları okuma modundayken bir iş parçacığı yükseltilebilir modda olabilir. Yükseltilebilir moda girmeyi bekleyen başka iş parçacıkları varsa ve yazma moduna girmeyi bekleyen iş parçacığı yoksa, yöntemini çağıran TryEnterReadLock iş parçacıkları hemen okuma moduna girer ve engellemez.

Şunlara uygulanır