ReaderWriterLockSlim.TryEnterUpgradeableReadLock Método

Definição

Tenta entrar na fechadura em modo melhorável, com um time-out opcional.

Sobrecargas

Name Description
TryEnterUpgradeableReadLock(Int32)

Tenta entrar na fechadura em modo melhorável, com um time-out opcional.

TryEnterUpgradeableReadLock(TimeSpan)

Tenta entrar na fechadura em modo melhorável, com um time-out opcional.

TryEnterUpgradeableReadLock(Int32)

Tenta entrar na fechadura em modo melhorável, com um time-out 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

O número de milissegundos para esperar, ou -1 (Infinite) para esperar indefinidamente.

Devoluções

true Se o fio que chamou entrou em modo atualizável, caso contrário, false.

Exceções

A RecursionPolicy propriedade é NoRecursion e o thread atual já entrou no bloqueio.

-ou-

O thread atual entrou inicialmente no bloqueio em modo de leitura, e portanto tentar entrar em modo atualizável criaria a possibilidade de um deadlock.

-ou-

O número de recursão excederia a capacidade do contador. O limite é tão grande que as aplicações nunca o deverão encontrar.

O valor de millisecondsTimeout é negativo, mas não é igual a Infinite (-1), que é o único valor negativo permitido.

Observações

Se millisecondsTimeout for 0 (zero), este método verifica o estado do bloqueio e retorna false imediatamente se o estado desejado não estiver disponível.

Use o modo atualizável quando uma thread normalmente acede ao recurso protegido pelo ReaderWriterLockSlim modo de leitura, mas pode ser necessário entrar no modo de escrita se certas condições forem cumpridas. Um thread em modo atualizável pode atualizar para modo de escrita ou descer para modo de leitura.

Apenas um fio pode entrar num bloqueio em modo atualizável em qualquer momento. Se uma thread estiver em modo atualizável e não houver threads à espera de entrar no modo de escrita, qualquer número de outros threads pode entrar em modo de leitura, mesmo que haja threads à espera para entrar no modo atualizável.

Se uma ou mais threads estiverem à espera de entrar em modo de escrita, uma thread que chama o TryEnterUpgradeableReadLock método bloqueia-se até que essas threads tenham expirado o tempo ou entrado em modo de escrita e depois saído dele, ou até que o intervalo de time-out próprio da thread que chama expire.

Note

Se um bloqueio permitir recursão, um thread que entrou no lock em modo atualizável pode entrar no modo atualizável recursivamente, mesmo que outros threads estejam à espera de entrar no modo de escrita.

Aplica-se a

TryEnterUpgradeableReadLock(TimeSpan)

Tenta entrar na fechadura em modo melhorável, com um time-out 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

O intervalo para esperar, ou -1 milissegundos para esperar indefinidamente.

Devoluções

true Se o fio que chamou entrou em modo atualizável, caso contrário, false.

Exceções

A RecursionPolicy propriedade é NoRecursion e o thread atual já entrou no bloqueio.

-ou-

O thread atual entrou inicialmente no bloqueio em modo de leitura, e portanto tentar entrar em modo atualizável criaria a possibilidade de um deadlock.

-ou-

O número de recursão excederia a capacidade do contador. O limite é tão grande que as aplicações nunca o deverão encontrar.

O valor de timeout é negativo, mas não é igual a -1 milissegundos, que é o único valor negativo permitido.

-ou-

O valor de timeout é superior a Int32.MaxValue milissegundos.

Observações

Se timeout for 0 (zero), este método verifica o estado do bloqueio e retorna false imediatamente se o estado desejado não estiver disponível.

Use o modo atualizável quando uma thread normalmente acede ao recurso protegido pelo ReaderWriterLockSlim modo de leitura, mas pode ser necessário entrar no modo de escrita se certas condições forem cumpridas. Um thread em modo atualizável pode atualizar para modo de escrita ou descer para modo de leitura.

Apenas um fio pode entrar num bloqueio em modo atualizável em qualquer momento. Se uma thread estiver em modo atualizável e não houver threads à espera de entrar no modo de escrita, qualquer número de outros threads pode entrar em modo de leitura, mesmo que haja threads à espera para entrar no modo atualizável.

Se uma ou mais threads estiverem à espera de entrar em modo de escrita, uma thread que chama o TryEnterUpgradeableReadLock método bloqueia-se até que essas threads tenham expirado o tempo ou entrado em modo de escrita e depois saído dele, ou até que o intervalo de time-out próprio da thread que chama expire.

Note

Se um bloqueio permitir recursão, um thread que entrou no lock em modo atualizável pode entrar no modo atualizável recursivamente, mesmo que outros threads estejam à espera de entrar no modo de escrita.

Aplica-se a