FileChannel.TryLock 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.
Sobrecargas
| Nome | Description |
|---|---|
| TryLock() |
Tenta adquirir um bloqueio exclusivo no arquivo deste canal. |
| TryLock(Int64, Int64, Boolean) |
Tenta adquirir um bloqueio na região especificada do arquivo deste canal. |
TryLock()
Tenta adquirir um bloqueio exclusivo no arquivo deste canal.
[Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")]
public Java.Nio.Channels.FileLock? TryLock();
[<Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")>]
member this.TryLock : unit -> Java.Nio.Channels.FileLock
Retornos
Um objeto de bloqueio que representa o bloqueio recém-adquirido ou null se o bloqueio não pôde ser adquirido porque outro programa contém um bloqueio sobreposto
- Atributos
Exceções
se o canal de arquivo estiver fechado.
se já existir um bloqueio que sobreponha essa solicitação de bloqueio ou outro thread estiver aguardando para adquirir um bloqueio que se sobreponha a essa solicitação.
se ocorrer algum erro de E/S.
Comentários
Tenta adquirir um bloqueio exclusivo no arquivo deste canal.
Uma invocação desse método do formulário fc.tryLock() se comporta exatamente da mesma maneira que a invocação
fc.{@link #tryLock(long,long,boolean) tryLock}(0L, Long.MAX_VALUE, false)
Java documentação para java.nio.channels.FileChannel.tryLock().
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
TryLock(Int64, Int64, Boolean)
Tenta adquirir um bloqueio na região especificada do arquivo deste canal.
[Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")]
public abstract Java.Nio.Channels.FileLock? TryLock(long position, long size, bool shared);
[<Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")>]
abstract member TryLock : int64 * int64 * bool -> Java.Nio.Channels.FileLock
Parâmetros
- position
- Int64
A posição na qual a região bloqueada deve ser iniciada; deve ser não negativo
- size
- Int64
O tamanho da região bloqueada; deve ser não negativo, e a soma position + size deve ser não negativa
- shared
- Boolean
true para solicitar um bloqueio compartilhado, false para solicitar um bloqueio exclusivo
Retornos
Um objeto de bloqueio que representa o bloqueio recém-adquirido ou null se o bloqueio não pôde ser adquirido porque outro programa contém um bloqueio sobreposto
- Atributos
Exceções
se quaisquer parâmetros forem inválidos.
se o canal de arquivo estiver fechado.
se já houver um bloqueio que sobreponha essa solicitação de bloqueio ou outro thread estiver aguardando para adquirir um bloqueio que se sobreponha a essa solicitação.
se ocorrer algum erro de E/S.
Comentários
Tenta adquirir um bloqueio na região especificada do arquivo deste canal.
Esse método não é bloqueado. Uma invocação sempre retorna imediatamente, tendo adquirido um bloqueio na região solicitada ou não ter feito isso. Se não conseguir adquirir um bloqueio porque um bloqueio sobreposto é mantido por outro programa, ele retorna null. Se não conseguir adquirir um bloqueio por qualquer outro motivo, uma exceção apropriada será gerada.
A região especificada pelo e size os position parâmetros não precisam ser contidos no arquivo subjacente real ou mesmo sobreposto. As regiões de bloqueio são fixas em tamanho; se uma região bloqueada inicialmente contiver o final do arquivo e o arquivo crescer além da região, a nova parte do arquivo não será coberta pelo bloqueio. Se espera-se que um arquivo aumente de tamanho e um bloqueio em todo o arquivo seja necessário, uma região começando em zero, e não menor que o tamanho máximo esperado do arquivo, deverá ser bloqueada. O método de argumento #tryLock() zero simplesmente bloqueia uma região de tamanho Long#MAX_VALUE.
Alguns sistemas operacionais não dão suporte a bloqueios compartilhados, caso em que uma solicitação para um bloqueio compartilhado é convertida automaticamente em uma solicitação para um bloqueio exclusivo. Se o bloqueio recém-adquirido é compartilhado ou exclusivo pode ser testado invocando o método do objeto de FileLock#isShared() isShared bloqueio resultante.
Os bloqueios de arquivo são mantidos em nome de toda a máquina virtual Java. Eles não são adequados para controlar o acesso a um arquivo por vários threads na mesma máquina virtual.
Java documentação para java.nio.channels.FileChannel.tryLock(long, long, boolean).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.