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