ReaderWriterLockSlim.TryEnterReadLock Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Tenta entrar no bloqueio no modo de leitura, com um tempo limite opcional.
Sobrecargas
TryEnterReadLock(Int32) |
Tenta inserir o bloqueio no modo de gravação com um tempo limite inteiro opcional. |
TryEnterReadLock(TimeSpan) |
Tenta entrar no bloqueio no modo de leitura, com um tempo limite opcional. |
TryEnterReadLock(Int32)
- Origem:
- ReaderWriterLockSlim.cs
- Origem:
- ReaderWriterLockSlim.cs
- Origem:
- ReaderWriterLockSlim.cs
Tenta inserir o bloqueio no modo de gravação com um tempo limite inteiro opcional.
public:
bool TryEnterReadLock(int millisecondsTimeout);
public bool TryEnterReadLock (int millisecondsTimeout);
member this.TryEnterReadLock : int -> bool
Public Function TryEnterReadLock (millisecondsTimeout As Integer) As Boolean
Parâmetros
- millisecondsTimeout
- Int32
O número de milissegundos a aguardar ou -1 (Infinite) para aguardar indefinidamente.
Retornos
true
se o thread de chamada tiver entrado no modo de leitura; caso contrário, false
.
Exceções
A propriedade RecursionPolicy é NoRecursion e o thread atual já entrou no bloqueio.
- ou -
O número de recursão excederia a capacidade do contador. O limite é tão grande que os aplicativos nunca o alcançariam.
O valor de millisecondsTimeout
é negativo, mas não é igual a Infinite (-1), que é o único valor negativo permitido.
O objeto ReaderWriterLockSlim foi descartado.
Comentários
Se millisecondsTimeout
for 0 (zero), esse método verificará o estado de bloqueio e retornará false
imediatamente se o estado desejado não estiver disponível.
Vários threads podem entrar no modo de leitura ao mesmo tempo.
Se um ou mais threads estiverem aguardando para entrar no modo de gravação, um thread que chama o TryEnterReadLock método será bloqueado até que esses threads tenham expirado ou entrado no modo de gravação e, em seguida, tenham saído dele ou até que o intervalo de tempo limite do thread de chamada expire.
Observação
Se um bloqueio permitir recursão, um thread que entrou no bloqueio no modo de leitura poderá entrar no modo de leitura recursivamente, mesmo que outros threads estejam aguardando para entrar no modo de gravação.
Um thread pode estar no modo atualizável enquanto outros threads estão no modo de leitura. Se threads adicionais estiverem aguardando para entrar no modo atualizável e não houver threads aguardando para entrar no modo de gravação, os threads que chamam o TryEnterReadLock método entrarão no modo de leitura imediatamente e não bloquearão.
Aplica-se a
TryEnterReadLock(TimeSpan)
- Origem:
- ReaderWriterLockSlim.cs
- Origem:
- ReaderWriterLockSlim.cs
- Origem:
- ReaderWriterLockSlim.cs
Tenta entrar no bloqueio no modo de leitura, com um tempo limite opcional.
public:
bool TryEnterReadLock(TimeSpan timeout);
public bool TryEnterReadLock (TimeSpan timeout);
member this.TryEnterReadLock : TimeSpan -> bool
Public Function TryEnterReadLock (timeout As TimeSpan) As Boolean
Parâmetros
- timeout
- TimeSpan
O intervalo para esperar ou -1 milissegundo para aguardar indefinidamente.
Retornos
true
se o thread de chamada tiver entrado no modo de leitura; caso contrário, false
.
Exceções
A propriedade RecursionPolicy é NoRecursion e o thread atual já entrou no bloqueio.
- ou -
O número de recursão excederia a capacidade do contador. O limite é tão grande que os aplicativos nunca o alcançariam.
O valor de timeout
é negativo, mas não é igual a -1 milissegundo, que é o único valor negativo permitido.
- ou -
O valor de timeout
é maior que Int32.MaxValue milissegundos.
O objeto ReaderWriterLockSlim foi descartado.
Comentários
Se timeout
for 0 (zero), esse método verificará o estado de bloqueio e retornará false
imediatamente se o estado desejado não estiver disponível.
Vários threads podem entrar no bloqueio no modo de leitura ao mesmo tempo.
Se um ou mais threads estiverem na fila para entrar no modo de gravação, um thread que chama o TryEnterReadLock método será bloqueado até que esses threads tenham expirado ou entrado no modo de gravação e, em seguida, sejam encerrados dele ou até que o intervalo de tempo limite do thread de chamada expire.
Observação
Se um bloqueio permitir recursão, um thread que entrou no bloqueio no modo de leitura poderá entrar no modo de leitura recursivamente, mesmo que outros threads estejam aguardando para entrar no modo de gravação.
Um thread pode estar no modo atualizável enquanto outros threads estão no modo de leitura. Se threads adicionais estiverem aguardando para entrar no modo atualizável e não houver threads aguardando para entrar no modo de gravação, os threads que chamam o TryEnterReadLock método entrarão no modo de leitura imediatamente e não bloquearão.