IAsynchronousChannel Interfaccia
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.
Canale che supporta operazioni di I/O asincrone.
[Android.Runtime.Register("java/nio/channels/AsynchronousChannel", "", "Java.Nio.Channels.IAsynchronousChannelInvoker", ApiSince=26)]
public interface IAsynchronousChannel : IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IChannel
[<Android.Runtime.Register("java/nio/channels/AsynchronousChannel", "", "Java.Nio.Channels.IAsynchronousChannelInvoker", ApiSince=26)>]
type IAsynchronousChannel = interface
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Derivato
- Attributi
- Implementazioni
Commenti
Canale che supporta operazioni di I/O asincrone. Le operazioni di I/O asincrone in genere accettano una delle due forme seguenti:
<ol><li>
{@link Future}<V> <em>operation</em>(<em>...</em>)
</li li><>
void <em>operation</em>(<em>...</em> A attachment, {@link
CompletionHandler}<V,? super A> handler)
</li></ol>
dove l'operazione è il nome dell'operazione di I/O (lettura o scrittura ad esempio), V è il tipo di risultato dell'operazione di I/O e A è il tipo di un oggetto collegato all'operazione di I/O per fornire contesto durante l'utilizzo del risultato. L'allegato è importante per i casi in cui viene usato un <em>state-less</em>CompletionHandler
per utilizzare il risultato di molte operazioni di I/O.
Nel primo modulo, i metodi definiti dall'interfaccia Future Future
possono essere usati per verificare se l'operazione è stata completata, attendere il completamento e recuperare il risultato. Nel secondo modulo viene richiamato un CompletionHandler
oggetto per utilizzare il risultato dell'operazione di I/O quando viene completato o ha esito negativo.
Un canale che implementa questa interfaccia è <>in modo asincrono chiudibile</em>: se un'operazione di I/O è in sospeso nel canale e il metodo del #close close
canale viene richiamato, l'operazione di I/O ha esito negativo con l'eccezione AsynchronousCloseException
.
I canali asincroni sono sicuri per l'uso da più thread simultanei. Alcune implementazioni del canale possono supportare la lettura e la scrittura simultanee, ma potrebbero non consentire a più operazioni di lettura e scrittura di essere in sospeso in qualsiasi momento.
<h2 Annullamento</h2>>
L'interfaccia Future
definisce il metodo per annullare l'esecuzione Future#cancel cancel
. In questo modo tutti i thread in attesa del risultato dell'operazione di I/O generano java.util.concurrent.CancellationException
. Se l'operazione di I/O sottostante può essere annullata è altamente specifica dell'implementazione e pertanto non specificata. Se l'annullamento lascia il canale o l'entità a cui è connesso, in uno stato incoerente, il canale viene inserito in uno stato< di errore di implementazione specifico <em/em>> che impedisce ulteriori tentativi di avviare operazioni di I/O simili all'operazione annullata. Ad esempio, se un'operazione di lettura viene annullata, ma l'implementazione non garantisce che i byte non siano stati letti dal canale, il canale viene inserito in uno stato di errore; altri tentativi di avviare un'operazione causano la generazione di un'eccezione read
di runtime non specificata. Analogamente, se un'operazione di scrittura viene annullata, ma l'implementazione non può garantire che i byte non siano stati scritti nel canale, i tentativi successivi di avviare un write
errore con un'eccezione di runtime non specificata.
Se il metodo viene richiamato con il Future#cancel cancel
mayInterruptIfRunning
parametro impostato su true
, l'operazione di I/O può essere interrotta chiudendo il canale. In tal caso tutti i thread in attesa del risultato dell'operazione di I/O generano CancellationException
e qualsiasi altra operazione di I/O in sospeso sul canale completa con l'eccezione AsynchronousCloseException
.
Se il cancel
metodo viene richiamato per annullare operazioni di lettura o scrittura, è consigliabile che tutti i buffer usati nelle operazioni di I/O vengano ignorati o presi cura di assicurarsi che i buffer non siano accessibili mentre il canale rimane aperto.
Aggiunta nella versione 1.7.
Documentazione Java per java.nio.channels.AsynchronousChannel
.
Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .
Proprietà
Handle |
Ottiene il valore JNI dell'oggetto Android sottostante. (Ereditato da IJavaObject) |
IsOpen |
Restituisce true se questo canale è aperto. (Ereditato da IChannel) |
JniIdentityHashCode |
Restituisce il valore di per |
JniManagedPeerState |
Stato del peer gestito. (Ereditato da IJavaPeerable) |
JniPeerMembers |
Supporto per l'accesso ai membri e la chiamata. (Ereditato da IJavaPeerable) |
PeerReference |
Restituisce un'istanza JniObjectReference dell'oggetto Java con wrapping. (Ereditato da IJavaPeerable) |
Metodi
Close() |
Chiude questo canale. |
Disposed() |
Chiamato quando l'istanza è stata eliminata. (Ereditato da IJavaPeerable) |
DisposeUnlessReferenced() |
Se non sono presenti riferimenti in sospeso a questa istanza, chiama |
Finalized() |
Chiamato quando l'istanza è stata finalizzata. (Ereditato da IJavaPeerable) |
SetJniIdentityHashCode(Int32) |
Impostare il valore restituito da |
SetJniManagedPeerState(JniManagedPeerStates) |
Canale che supporta operazioni di I/O asincrone. (Ereditato da IJavaPeerable) |
SetPeerReference(JniObjectReference) |
Impostare il valore restituito da |
UnregisterFromRuntime() |
Annullare la registrazione di questa istanza in modo che il runtime non lo restituirà dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue . (Ereditato da IJavaPeerable) |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione dei tipi controllati dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Canale che supporta operazioni di I/O asincrone. |
GetJniTypeName(IJavaPeerable) |
Canale che supporta operazioni di I/O asincrone. |