ReaderWriterLockSlim.TryEnterUpgradeableReadLock 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 inserir o bloqueio no modo de upgrade, com um tempo limite opcional.
Sobrecargas
TryEnterUpgradeableReadLock(Int32) |
Tenta inserir o bloqueio no modo de upgrade, com um tempo limite opcional. |
TryEnterUpgradeableReadLock(TimeSpan) |
Tenta inserir o bloqueio no modo de upgrade, com um tempo limite opcional. |
TryEnterUpgradeableReadLock(Int32)
- Origem:
- ReaderWriterLockSlim.cs
- Origem:
- ReaderWriterLockSlim.cs
- Origem:
- ReaderWriterLockSlim.cs
Tenta inserir o bloqueio no modo de upgrade, com um tempo limite 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 a aguardar ou -1 (Infinite) para aguardar indefinidamente.
Retornos
true
se o thread de chamada tiver entrado no modo de upgrade, caso contrário, false
.
Exceções
A propriedade RecursionPolicy é NoRecursion e o thread atual já entrou no bloqueio.
- ou -
O thread atual inseriu inicialmente o bloqueio no modo de leitura, portanto, tentar entrar no modo de upgrade geraria a possibilidade de um deadlock.
- 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.
Use o ReaderWriterLockSlim modo atualizável quando um thread geralmente acessa o recurso protegido pelo no modo de leitura, mas pode precisar entrar no modo de gravação se determinadas condições forem atendidas. Um thread no modo atualizável pode atualizar para o modo de gravação ou fazer downgrade para o modo de leitura.
Somente um thread pode inserir um bloqueio no modo atualizável a qualquer momento. Se um thread estiver no modo atualizável e não houver threads aguardando para entrar no modo de gravação, qualquer número de outros threads poderá entrar no modo de leitura, mesmo que haja threads aguardando para entrar no modo atualizável.
Se um ou mais threads estiverem aguardando para entrar no modo de gravação, um thread que chama o TryEnterUpgradeableReadLock 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 atualizável poderá entrar no modo atualizável recursivamente, mesmo que outros threads estejam aguardando para entrar no modo de gravação.
Aplica-se a
TryEnterUpgradeableReadLock(TimeSpan)
- Origem:
- ReaderWriterLockSlim.cs
- Origem:
- ReaderWriterLockSlim.cs
- Origem:
- ReaderWriterLockSlim.cs
Tenta inserir o bloqueio no modo de upgrade, com um tempo limite 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 milissegundo para aguardar indefinidamente.
Retornos
true
se o thread de chamada tiver entrado no modo de upgrade, caso contrário, false
.
Exceções
A propriedade RecursionPolicy é NoRecursion e o thread atual já entrou no bloqueio.
- ou -
O thread atual inseriu inicialmente o bloqueio no modo de leitura, portanto, tentar entrar no modo de upgrade geraria a possibilidade de um deadlock.
- 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.
Use o modo atualizável quando um thread geralmente acessa o recurso protegido pelo ReaderWriterLockSlim no modo de leitura, mas pode precisar entrar no modo de gravação se determinadas condições forem atendidas. Um thread no modo atualizável pode atualizar para o modo de gravação ou fazer downgrade para o modo de leitura.
Somente um thread pode inserir um bloqueio no modo atualizável a qualquer momento. Se um thread estiver no modo atualizável e não houver threads aguardando para entrar no modo de gravação, qualquer número de outros threads poderá entrar no modo de leitura, mesmo que haja threads aguardando para entrar no modo atualizável.
Se um ou mais threads estiverem aguardando para entrar no modo de gravação, um thread que chama o TryEnterUpgradeableReadLock 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 atualizável poderá entrar no modo atualizável recursivamente, mesmo que outros threads estejam aguardando para entrar no modo de gravação.