Aracılığıyla paylaş


ReaderWriterLockSlim.TryEnterUpgradeableReadLock Yöntem

Tanım

Kilidi isteğe bağlı bir zaman aşımıyla yükseltilebilir modda girmeye çalışır.

Aşırı Yüklemeler

TryEnterUpgradeableReadLock(Int32)

Kilidi isteğe bağlı bir zaman aşımıyla yükseltilebilir modda girmeye çalışır.

TryEnterUpgradeableReadLock(TimeSpan)

Kilidi isteğe bağlı bir zaman aşımıyla yükseltilebilir modda girmeye çalışır.

TryEnterUpgradeableReadLock(Int32)

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

Kilidi isteğe bağlı bir zaman aşımıyla yükseltilebilir modda girmeye çalışır.

public:
 bool TryEnterUpgradeableReadLock(int millisecondsTimeout);
public bool TryEnterUpgradeableReadLock (int millisecondsTimeout);
member this.TryEnterUpgradeableReadLock : int -> bool
Public Function TryEnterUpgradeableReadLock (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ığı yükseltilebilir moda girdiyse, aksi takdirde , false.

Özel durumlar

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

-veya-

Geçerli iş parçacığı başlangıçta kilidi okuma moduna girdi ve bu nedenle yükseltilebilir moda girmeye çalışmak kilitlenme olasılığına neden olabilir.

-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 .

Bir iş parçacığı genellikle okuma modunda korunan ReaderWriterLockSlim kaynağa eriştiğinde yükseltilebilir modu kullanın, ancak belirli koşullar karşılanırsa yazma moduna girmesi gerekebilir. Yükseltilebilir modda bir iş parçacığı yazma moduna yükseltebilir veya okuma moduna düşürebilir.

Herhangi bir anda yükseltilebilir modda yalnızca bir iş parçacığı kilit girebilir. bir iş parçacığı yükseltilebilir moddaysa ve yazma moduna girmek için bekleyen iş parçacığı yoksa, yükseltilebilir moda girmeyi bekleyen iş parçacıkları olsa bile başka iş parçacıkları 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 TryEnterUpgradeableReadLock bir iş parçacığı blokları.

Not

Bir kilit özyinelemeye izin veriyorsa, kilidi yükseltilebilir modda giren bir iş parçacığı, diğer iş parçacıkları yazma moduna girmeyi beklese bile yükseltilebilir moda yinelemeli olarak girebilir.

Şunlara uygulanır

TryEnterUpgradeableReadLock(TimeSpan)

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

Kilidi isteğe bağlı bir zaman aşımıyla yükseltilebilir modda girmeye çalışır.

public:
 bool TryEnterUpgradeableReadLock(TimeSpan timeout);
public bool TryEnterUpgradeableReadLock (TimeSpan timeout);
member this.TryEnterUpgradeableReadLock : TimeSpan -> bool
Public Function TryEnterUpgradeableReadLock (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ığı yükseltilebilir moda girdiyse, aksi takdirde , false.

Özel durumlar

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

-veya-

Geçerli iş parçacığı başlangıçta kilidi okuma moduna girdi ve bu nedenle yükseltilebilir moda girmeye çalışmak kilitlenme olasılığına neden olabilir.

-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 .

Bir iş parçacığı genellikle okuma modunda korunan ReaderWriterLockSlim kaynağa eriştiğinde yükseltilebilir modu kullanın, ancak belirli koşullar karşılanırsa yazma moduna girmesi gerekebilir. Yükseltilebilir modda bir iş parçacığı yazma moduna yükseltebilir veya okuma moduna düşürebilir.

Herhangi bir anda yükseltilebilir modda yalnızca bir iş parçacığı kilit girebilir. bir iş parçacığı yükseltilebilir moddaysa ve yazma moduna girmek için bekleyen iş parçacığı yoksa, yükseltilebilir moda girmeyi bekleyen iş parçacıkları olsa bile başka iş parçacıkları 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 TryEnterUpgradeableReadLock bir iş parçacığı blokları.

Not

Bir kilit özyinelemeye izin veriyorsa, kilidi yükseltilebilir modda giren bir iş parçacığı, diğer iş parçacıkları yazma moduna girmeyi beklese bile yükseltilebilir moda yinelemeli olarak girebilir.

Şunlara uygulanır