ReaderWriterLockSlim.TryEnterUpgradeableReadLock Método

Definição

Tenta inserir o bloqueio no modo atualizável, com um tempo limite opcional.

Sobrecargas

Nome Description
TryEnterUpgradeableReadLock(Int32)

Tenta inserir o bloqueio no modo atualizável, com um tempo limite opcional.

TryEnterUpgradeableReadLock(TimeSpan)

Tenta inserir o bloqueio no modo atualizável, com um tempo limite opcional.

TryEnterUpgradeableReadLock(Int32)

Tenta inserir o bloqueio no modo atualizável, 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) a aguardar indefinidamente.

Retornos

true se o thread de chamada inseriu o modo atualizável, caso contrário, false.

Exceções

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

-ou-

O thread atual inicialmente inseriu o bloqueio no modo de leitura e, portanto, tentar entrar no 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 os aplicativos nunca devem encontrar ele.

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

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 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 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 bloqueia até que esses threads tenham cronometrado ou inserido no modo de gravação e, em seguida, saído dele ou até que o intervalo de tempo limite do próprio thread de chamada expire.

Note

Se um bloqueio permitir a recursão, um thread que inseriu o bloqueio no modo atualizável poderá entrar no modo atualizável de forma recursiva, mesmo que outros threads estejam aguardando para entrar no modo de gravação.

Aplica-se a

TryEnterUpgradeableReadLock(TimeSpan)

Tenta inserir o bloqueio no modo atualizável, 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 a ser esperado ou -1 milissegundos para aguardar indefinidamente.

Retornos

true se o thread de chamada inseriu o modo atualizável, caso contrário, false.

Exceções

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

-ou-

O thread atual inicialmente inseriu o bloqueio no modo de leitura e, portanto, tentar entrar no 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 os aplicativos nunca devem encontrar ele.

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

-ou-

O valor é timeout maior que Int32.MaxValue milissegundos.

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 modo de leitura, mas talvez seja necessário 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 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 bloqueia até que esses threads tenham cronometrado ou inserido no modo de gravação e, em seguida, saído dele ou até que o intervalo de tempo limite do próprio thread de chamada expire.

Note

Se um bloqueio permitir a recursão, um thread que inseriu o bloqueio no modo atualizável poderá entrar no modo atualizável de forma recursiva, mesmo que outros threads estejam aguardando para entrar no modo de gravação.

Aplica-se a