ReaderWriterLockSlim.TryEnterUpgradeableReadLock Método

Definición

Intenta entrar en el bloqueo en modo actualizable, con un tiempo de espera opcional.

Sobrecargas

Nombre Description
TryEnterUpgradeableReadLock(Int32)

Intenta entrar en el bloqueo en modo actualizable, con un tiempo de espera opcional.

TryEnterUpgradeableReadLock(TimeSpan)

Intenta entrar en el bloqueo en modo actualizable, con un tiempo de espera opcional.

TryEnterUpgradeableReadLock(Int32)

Intenta entrar en el bloqueo en modo actualizable, con un tiempo de espera opcional.

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

Parámetros

millisecondsTimeout
Int32

Número de milisegundos que se van a esperar o -1 (Infinite) para esperar indefinidamente.

Devoluciones

true si el subproceso que llama entró en modo actualizable; de lo contrario, false.

Excepciones

La RecursionPolicy propiedad es NoRecursion y el subproceso actual ya ha entrado en el bloqueo.

O bien

El subproceso actual entró inicialmente en el bloqueo en modo de lectura y, por lo tanto, intentar entrar en modo actualizable crearía la posibilidad de un interbloqueo.

O bien

El número de recursividad superaría la capacidad del contador. El límite es tan grande que las aplicaciones nunca deben encontrarse con él.

El valor de millisecondsTimeout es negativo, pero no es igual a Infinite (-1), que es el único valor negativo permitido.

El ReaderWriterLockSlim objeto se ha eliminado.

Comentarios

Si millisecondsTimeout es 0 (cero), este método comprueba el estado de bloqueo y devuelve false inmediatamente si el estado deseado no está disponible.

Use el modo actualizable cuando un subproceso tenga acceso normalmente al recurso protegido por en ReaderWriterLockSlim modo de lectura, pero puede que tenga que entrar en modo de escritura si se cumplen determinadas condiciones. Un subproceso en modo actualizable puede actualizar al modo de escritura o degradarse al modo de lectura.

Solo un subproceso puede entrar en un bloqueo en modo actualizable en cualquier momento dado. Si un subproceso está en modo actualizable y no hay subprocesos que esperan entrar en modo de escritura, cualquier número de otros subprocesos puede entrar en modo de lectura, incluso si hay subprocesos que esperan entrar en modo actualizable.

Si uno o varios subprocesos están esperando entrar en modo de escritura, un subproceso que llama al TryEnterUpgradeableReadLock método bloquea hasta que esos subprocesos hayan agotado el tiempo de espera o hayan entrado en modo de escritura y, a continuación, salgan de él, o hasta que expire el intervalo de tiempo de espera del subproceso que realiza la llamada.

Note

Si un bloqueo permite la recursividad, un subproceso que ha entrado en el bloqueo en modo actualizable puede entrar en modo actualizable de forma recursiva, incluso si otros subprocesos están esperando entrar en modo de escritura.

Se aplica a

TryEnterUpgradeableReadLock(TimeSpan)

Intenta entrar en el bloqueo en modo actualizable, con un tiempo de espera opcional.

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

Parámetros

timeout
TimeSpan

Intervalo que se va a esperar o -1 milisegundos para esperar indefinidamente.

Devoluciones

true si el subproceso que llama entró en modo actualizable; de lo contrario, false.

Excepciones

La RecursionPolicy propiedad es NoRecursion y el subproceso actual ya ha entrado en el bloqueo.

O bien

El subproceso actual entró inicialmente en el bloqueo en modo de lectura y, por lo tanto, intentar entrar en modo actualizable crearía la posibilidad de un interbloqueo.

O bien

El número de recursividad superaría la capacidad del contador. El límite es tan grande que las aplicaciones nunca deben encontrarse con él.

El valor de timeout es negativo, pero no es igual a -1 milisegundos, que es el único valor negativo permitido.

O bien

El valor de timeout es mayor que Int32.MaxValue milisegundos.

El ReaderWriterLockSlim objeto se ha eliminado.

Comentarios

Si timeout es 0 (cero), este método comprueba el estado de bloqueo y devuelve false inmediatamente si el estado deseado no está disponible.

Use el modo actualizable cuando un subproceso tenga acceso normalmente al recurso protegido por en ReaderWriterLockSlim modo de lectura, pero es posible que tenga que entrar en modo de escritura si se cumplen determinadas condiciones. Un subproceso en modo actualizable puede actualizar al modo de escritura o degradarse al modo de lectura.

Solo un subproceso puede entrar en un bloqueo en modo actualizable en cualquier momento dado. Si un subproceso está en modo actualizable y no hay subprocesos que esperan entrar en modo de escritura, cualquier número de otros subprocesos puede entrar en modo de lectura, incluso si hay subprocesos que esperan entrar en modo actualizable.

Si uno o varios subprocesos están esperando entrar en modo de escritura, un subproceso que llama al TryEnterUpgradeableReadLock método bloquea hasta que esos subprocesos hayan agotado el tiempo de espera o hayan entrado en modo de escritura y, a continuación, salgan de él, o hasta que expire el intervalo de tiempo de espera del subproceso que realiza la llamada.

Note

Si un bloqueo permite la recursividad, un subproceso que ha entrado en el bloqueo en modo actualizable puede entrar en modo actualizable de forma recursiva, incluso si otros subprocesos están esperando entrar en modo de escritura.

Se aplica a