ReaderWriterLockSlim.TryEnterUpgradeableReadLock Méthode

Définition

Essaie d'entrer le verrou en mode pouvant être mis à niveau, avec un délai d'attente facultatif.

Surcharges

TryEnterUpgradeableReadLock(Int32)

Essaie d'entrer le verrou en mode pouvant être mis à niveau, avec un délai d'attente facultatif.

TryEnterUpgradeableReadLock(TimeSpan)

Essaie d'entrer le verrou en mode pouvant être mis à niveau, avec un délai d'attente facultatif.

TryEnterUpgradeableReadLock(Int32)

Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs

Essaie d'entrer le verrou en mode pouvant être mis à niveau, avec un délai d'attente facultatif.

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

Paramètres

millisecondsTimeout
Int32

Nombre de millisecondes à attendre, ou Infinite (-1) pour un délai d'attente infini.

Retours

true si le thread appelant est entré en mode de mise à niveau, sinon, false.

Exceptions

La propriété RecursionPolicy est NoRecursion et le thread actuel a déjà entré le verrou.

- ou -

Le thread actuel a entré à l'origine le verrou en mode lecture et par conséquent, une tentative d'entrer en mode de mise à niveau risquerait de créer un interblocage.

- ou -

Le nombre de récursivités dépasserait la capacité du compteur. Cette limite est si élevée que les applications ne doivent jamais la rencontrer.

La valeur de millisecondsTimeout est négative, mais différente de Infinite (-1), qui est la seule valeur négative autorisée.

L’objet ReaderWriterLockSlim a été supprimé.

Remarques

Si millisecondsTimeout a la valeur 0 (zéro), cette méthode vérifie l’état de verrouillage et retourne false immédiatement si l’état souhaité n’est pas disponible.

Utilisez le mode pouvant être mis à niveau lorsqu’un thread accède généralement à la ressource protégée par le ReaderWriterLockSlim en mode lecture, mais peut avoir besoin d’entrer en mode écriture si certaines conditions sont remplies. Un thread en mode pouvant être mis à niveau peut passer en mode écriture ou passer en mode lecture.

Un seul thread peut entrer un verrou en mode pouvant être mis à niveau à un moment donné. Si un thread est en mode pouvant être mis à niveau et qu’aucun thread n’attend d’entrer en mode écriture, n’importe quel nombre d’autres threads peuvent passer en mode lecture, même s’il y a des threads en attente d’entrer en mode pouvant être mis à niveau.

Si un ou plusieurs threads attendent d’entrer en mode écriture, un thread qui appelle la TryEnterUpgradeableReadLock méthode se bloque jusqu’à ce que ces threads aient expiré ou entré en mode écriture, puis qu’ils se soient retirés de celui-ci, ou jusqu’à ce que l’intervalle de délai d’attente du thread appelant arrive à expiration.

Notes

Si un verrou autorise la récursivité, un thread qui est entré dans le verrou en mode pouvant être mis à niveau peut passer en mode pouvant être mis à niveau de manière récursive, même si d’autres threads attendent d’entrer en mode écriture.

S’applique à

TryEnterUpgradeableReadLock(TimeSpan)

Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs
Source:
ReaderWriterLockSlim.cs

Essaie d'entrer le verrou en mode pouvant être mis à niveau, avec un délai d'attente facultatif.

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

Paramètres

timeout
TimeSpan

Intervalle d'attente, ou -1 milliseconde pour un délai d'attente infini.

Retours

true si le thread appelant est entré en mode de mise à niveau, sinon, false.

Exceptions

La propriété RecursionPolicy est NoRecursion et le thread actuel a déjà entré le verrou.

- ou -

Le thread actuel a entré à l'origine le verrou en mode lecture et par conséquent, une tentative d'entrer en mode de mise à niveau risquerait de créer un interblocage.

- ou -

Le nombre de récursivités dépasserait la capacité du compteur. Cette limite est si élevée que les applications ne doivent jamais la rencontrer.

La valeur de timeout est négative, mais différente de -1 millisecondes, qui est la seule valeur négative autorisée.

- ou -

La valeur de timeout est supérieure à Int32.MaxValue millisecondes.

L’objet ReaderWriterLockSlim a été supprimé.

Remarques

Si timeout a la valeur 0 (zéro), cette méthode vérifie l’état de verrouillage et retourne false immédiatement si l’état souhaité n’est pas disponible.

Utilisez le mode pouvant être mis à niveau lorsqu’un thread accède généralement à la ressource protégée par le ReaderWriterLockSlim en mode lecture, mais peut avoir besoin d’entrer en mode écriture si certaines conditions sont remplies. Un thread en mode pouvant être mis à niveau peut passer en mode écriture ou passer en mode lecture.

Un seul thread peut entrer un verrou en mode pouvant être mis à niveau à un moment donné. Si un thread est en mode pouvant être mis à niveau et qu’aucun thread n’attend d’entrer en mode écriture, n’importe quel nombre d’autres threads peuvent passer en mode lecture, même s’il y a des threads en attente d’entrer en mode pouvant être mis à niveau.

Si un ou plusieurs threads attendent d’entrer en mode écriture, un thread qui appelle la TryEnterUpgradeableReadLock méthode se bloque jusqu’à ce que ces threads aient expiré ou entré en mode écriture, puis qu’ils se soient retirés de celui-ci, ou jusqu’à ce que l’intervalle de délai d’attente du thread appelant arrive à expiration.

Notes

Si un verrou autorise la récursivité, un thread qui est entré dans le verrou en mode pouvant être mis à niveau peut passer en mode pouvant être mis à niveau de manière récursive, même si d’autres threads attendent d’entrer en mode écriture.

S’applique à