AsynchronousFileChannel.Lock Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
Lock() |
Acquisisce un blocco esclusivo sul file del canale. |
Lock(Object, ICompletionHandler) |
Acquisisce un blocco esclusivo sul file del canale. |
Lock(Int64, Int64, Boolean) |
Acquisisce un blocco sull'area specificata del file del canale. |
Lock(Int64, Int64, Boolean, Object, ICompletionHandler) |
Acquisisce un blocco sull'area specificata del file del canale. |
Lock()
Acquisisce un blocco esclusivo sul file del canale.
[Android.Runtime.Register("lock", "()Ljava/util/concurrent/Future;", "", ApiSince=26)]
public Java.Util.Concurrent.IFuture? Lock ();
[<Android.Runtime.Register("lock", "()Ljava/util/concurrent/Future;", "", ApiSince=26)>]
member this.Lock : unit -> Java.Util.Concurrent.IFuture
Restituisce
oggetto Future
che rappresenta il risultato in sospeso
- Attributi
Commenti
Acquisisce un blocco esclusivo sul file del canale.
Questo metodo avvia un'operazione per acquisire un blocco esclusivo sul file del canale. Il metodo restituisce un oggetto Future
che rappresenta il risultato in sospeso dell'operazione. Il Future
metodo del Future#get() get
metodo restituisce l'oggetto FileLock
al completamento riuscito.
Una chiamata di questo metodo si comporta esattamente come la chiamata
ch.{@link #lock(long,long,boolean) lock}(0L, Long.MAX_VALUE, false)
Documentazione java per java.nio.channels.AsynchronousFileChannel.lock()
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Si applica a
Lock(Object, ICompletionHandler)
Acquisisce un blocco esclusivo sul file del canale.
[Android.Runtime.Register("lock", "(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Lock (Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("lock", "(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
member this.Lock : Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
Parametri
- attachment
- Object
Oggetto da associare all'operazione di I/O; può essere null
- handler
- ICompletionHandler
Gestore per l'utilizzo del risultato
- Attributi
Commenti
Acquisisce un blocco esclusivo sul file del canale.
Questo metodo avvia un'operazione per acquisire un blocco nell'area specificata del file del canale. Il handler
parametro è un gestore di completamento che viene richiamato quando il blocco viene acquisito (o l'operazione ha esito negativo). Il risultato passato al gestore di completamento è l'oggetto risultante FileLock
.
Una chiamata di questo metodo del form ch.lock(att,handler)
si comporta esattamente come la chiamata
ch.{@link #lock(long,long,boolean,Object,CompletionHandler) lock}(0L, Long.MAX_VALUE, false, att, handler)
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Si applica a
Lock(Int64, Int64, Boolean)
Acquisisce un blocco sull'area specificata del file del canale.
[Android.Runtime.Register("lock", "(JJZ)Ljava/util/concurrent/Future;", "GetLock_JJZHandler", ApiSince=26)]
public abstract Java.Util.Concurrent.IFuture? Lock (long position, long size, bool shared);
[<Android.Runtime.Register("lock", "(JJZ)Ljava/util/concurrent/Future;", "GetLock_JJZHandler", ApiSince=26)>]
abstract member Lock : int64 * int64 * bool -> Java.Util.Concurrent.IFuture
Parametri
- position
- Int64
Posizione in cui deve iniziare l'area bloccata; deve essere non negativo
- size
- Int64
Dimensioni dell'area bloccata; deve essere non negativo e la somma position
+ size
deve essere non negativa
- shared
- Boolean
true
per richiedere un blocco condiviso, nel qual caso questo canale deve essere aperto per la lettura (ed eventualmente la scrittura); false
per richiedere un blocco esclusivo, nel qual caso questo canale deve essere aperto per la scrittura (ed eventualmente la lettura)
Restituisce
oggetto Future
che rappresenta il risultato in sospeso
- Attributi
Commenti
Acquisisce un blocco sull'area specificata del file del canale.
Questo metodo avvia un'operazione per acquisire un blocco nell'area specificata del file del canale. Il metodo si comporta esattamente allo stesso modo del metodo, ad eccezione del #lock(long, long, boolean, Object, CompletionHandler)
fatto che invece di specificare un gestore di completamento, questo metodo restituisce un Future
oggetto che rappresenta il risultato in sospeso. Il Future
metodo del Future#get() get
metodo restituisce l'oggetto FileLock
al completamento riuscito.
Documentazione java per java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean)
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Si applica a
Lock(Int64, Int64, Boolean, Object, ICompletionHandler)
Acquisisce un blocco sull'area specificata del file del canale.
[Android.Runtime.Register("lock", "(JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetLock_JJZLjava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public abstract void Lock (long position, long size, bool shared, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("lock", "(JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetLock_JJZLjava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Lock : int64 * int64 * bool * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
Parametri
- position
- Int64
Posizione in cui deve iniziare l'area bloccata; deve essere non negativo
- size
- Int64
Dimensioni dell'area bloccata; deve essere non negativo e la somma position
+ size
deve essere non negativa
- shared
- Boolean
true
per richiedere un blocco condiviso, nel qual caso questo canale deve essere aperto per la lettura (ed eventualmente la scrittura); false
per richiedere un blocco esclusivo, nel qual caso questo canale deve essere aperto per la scrittura (ed eventualmente la lettura)
- attachment
- Object
Oggetto da associare all'operazione di I/O; può essere null
- handler
- ICompletionHandler
Gestore per l'utilizzo del risultato
- Attributi
Commenti
Acquisisce un blocco sull'area specificata del file del canale.
Questo metodo avvia un'operazione per acquisire un blocco nell'area specificata del file del canale. Il handler
parametro è un gestore di completamento che viene richiamato quando il blocco viene acquisito (o l'operazione ha esito negativo). Il risultato passato al gestore di completamento è l'oggetto risultante FileLock
.
L'area specificata dai position
parametri e size
non deve essere contenuta all'interno o addirittura sovrapporsi al file sottostante effettivo. Le aree di blocco sono fisse; se inizialmente un'area bloccata contiene la fine del file e il file aumenta oltre l'area, la nuova parte del file non verrà coperta dal blocco. Se è previsto un aumento delle dimensioni di un file e è necessario un blocco per l'intero file, è necessario che un'area a partire da zero e non sia inferiore alla dimensione massima prevista del file, deve essere bloccata. Il metodo a due argomenti #lock(Object,CompletionHandler)
blocca semplicemente un'area di dimensioni Long#MAX_VALUE
. Se un blocco che si sovrappone all'area richiesta è già contenuto in questa macchina virtuale Java o questo metodo è stato richiamato per bloccare un'area sovrapposta e tale operazione non è stata completata, questo metodo genera OverlappingFileLockException
.
Alcuni sistemi operativi non supportano un meccanismo per acquisire un blocco di file in modo asincrono. Di conseguenza, un'implementazione può acquisire il blocco di file in un thread in background o da un'attività eseguita da un thread nel pool di thread associato. Se sono presenti molte operazioni di blocco in sospeso, potrebbe utilizzare thread nella macchina virtuale Java per periodi indefiniti.
Alcuni sistemi operativi non supportano blocchi condivisi, nel qual caso una richiesta di blocco condiviso viene convertita automaticamente in una richiesta di blocco esclusivo. Se il blocco appena acquisito è condiviso o esclusivo può essere testato richiamando il metodo dell'oggetto FileLock#isShared() isShared
di blocco risultante.
I blocchi di file vengono mantenuti per conto dell'intera macchina virtuale Java. Non sono adatti per controllare l'accesso a un file da più thread all'interno della stessa macchina virtuale.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.