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 accettano 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 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 cancelmayInterruptIfRunning 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 java.lang.System.identityHashCode() l'istanza di wrapped.

(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'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 Dispose(); in caso contrario, non fa nulla.

(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 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.

Si applica a