Condividi tramite


IAsynchronousChannel Interfaccia

Definizione

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 avranno una delle due forme seguenti:

<ol><li>

{@link Future}&lt;V&gt; <em>operation</em>(<em>...</em>)

</li li><>

void <em>operation</em>(<em>...</em> A attachment, {@link
              CompletionHandler}&lt;V,? super A&gt; 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 associato all'operazione di I/O per fornire contesto quando si utilizza il 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 utilizzati 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 è <em>in modo asincrono chiudibile</em>: se un'operazione di I/O è in sospeso nel canale e viene richiamato il metodo del #close close canale, l'operazione di I/O ha esito negativo con l'eccezione AsynchronousCloseException.

I canali asincroni sono sicuri per l'uso da parte di più thread simultanei. Alcune implementazioni del canale possono supportare la lettura e la scrittura simultanee, ma potrebbero non consentire più operazioni di lettura e scrittura 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 è specifica dell'implementazione elevata 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 em/em>> specifico <dell'implementazione 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 può garantire che i byte non siano stati letti dal canale, il canale viene inserito in uno stato di errore; altri tentativi di avviare un'operazione read causano la generazione di un'eccezione 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 successivi tentativi di avviare un write errore avranno esito negativo con un'eccezione di runtime non specificata.

Se il Future#cancel cancel metodo viene richiamato con il 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 attesa sul canale completa con l'eccezione AsynchronousCloseException.

Quando il cancel metodo viene richiamato per annullare le operazioni di lettura o scrittura, è consigliabile eliminare tutti i buffer usati nelle operazioni di I/O o per 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 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.

Proprietà

Handle

Ottiene il valore JNI dell'oggetto Android sottostante.

(Ereditato da IJavaObject)
IsOpen

Restituisce true se il canale è aperto.

(Ereditato da IChannel)
JniIdentityHashCode

Restituisce il valore di java.lang.System.identityHashCode() per l'istanza di cui è stato eseguito il wrapping.

(Ereditato da IJavaPeerable)
JniManagedPeerState

Stato del peer gestito.

(Ereditato da IJavaPeerable)
JniPeerMembers

Supporto per l'accesso ai membri e la chiamata.

(Ereditato da IJavaPeerable)
PeerReference

Restituisce un JniObjectReference oggetto dell'istanza dell'oggetto Java di cui è stato eseguito il 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 Dispose(); in caso contrario, non esegue alcuna operazione.

(Ereditato da IJavaPeerable)
Finalized()

Chiamato quando l'istanza è stata finalizzata.

(Ereditato da IJavaPeerable)
SetJniIdentityHashCode(Int32)

Impostare il valore restituito da JniIdentityHashCode.

(Ereditato da IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Canale che supporta operazioni di I/O asincrone.

(Ereditato da IJavaPeerable)
SetPeerReference(JniObjectReference)

Impostare il valore restituito da PeerReference.

(Ereditato da IJavaPeerable)
UnregisterFromRuntime()

Annullare la registrazione di questa istanza in modo che il runtime non lo restituisca dalle chiamate future Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Ereditato da IJavaPeerable)

Metodi di estensione

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Canale che supporta operazioni di I/O asincrone.

GetJniTypeName(IJavaPeerable)

Canale che supporta operazioni di I/O asincrone.

Si applica a