Partager via


IAsynchronousChannel Interface

Définition

Canal qui prend en charge les opérations d’E/S asynchrones.

[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
Dérivé
Attributs
Implémente

Remarques

Canal qui prend en charge les opérations d’E/S asynchrones. Les opérations d’E/S asynchrones prennent généralement l’une des deux formes suivantes :

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

l’opération est le nom de l’opération d’E/S (lecture ou écriture par exemple), V est le type de résultat de l’opération d’E/S et A est le type d’un objet attaché à l’opération d’E/S pour fournir le contexte lors de la consommation du résultat. La pièce jointe est importante pour les cas où un <em>sans état</em>CompletionHandler est utilisé pour consommer le résultat de nombreuses opérations d’E/S.

Dans le premier formulaire, les méthodes définies par l’interface Future Future peuvent être utilisées pour vérifier si l’opération s’est terminée, attendre sa fin et récupérer le résultat. Dans le deuxième formulaire, il CompletionHandler est appelé pour consommer le résultat de l’opération d’E/S lorsqu’elle se termine ou échoue.

Canal qui implémente cette interface est <em>de manière asynchrone closeable</em> : si une opération d’E/S est en attente sur le canal et que la méthode du #close close canal est appelée, l’opération d’E/S échoue avec l’exception AsynchronousCloseException.

Les canaux asynchrones sont sécurisés pour une utilisation par plusieurs threads simultanés. Certaines implémentations de canal peuvent prendre en charge la lecture et l’écriture simultanées, mais peuvent ne pas autoriser plusieurs opérations de lecture et d’écriture à un moment donné.

<h2>Annulation</h2>

L’interface Future définit la méthode pour annuler l’exécution Future#cancel cancel . Cela entraîne la levée java.util.concurrent.CancellationExceptionde tous les threads en attente du résultat de l’opération d’E/S. Si l’opération d’E/S sous-jacente peut être annulée est très spécifique à l’implémentation et, par conséquent, non spécifiée. Lorsque l’annulation quitte le canal, ou l’entité à laquelle il est connecté, dans un état incohérent, le canal est placé dans un état< d’erreur em>> spécifique <à l’implémentation qui empêche d’autres tentatives d’initialisation des opérations d’E/S similaires à l’opération annulée. Par exemple, si une opération de lecture est annulée, mais que l’implémentation ne peut pas garantir que les octets n’ont pas été lus à partir du canal, il place le canal dans un état d’erreur ; d’autres tentatives de lancement d’une read opération entraînent la levée d’une exception d’exécution non spécifiée. De même, si une opération d’écriture est annulée, mais que l’implémentation ne peut pas garantir que les octets n’ont pas été écrits dans le canal, les tentatives suivantes de lancement échouent write avec une exception d’exécution non spécifiée.

Où la Future#cancel cancel méthode est appelée avec le mayInterruptIfRunning paramètre défini pour true que l’opération d’E/S puisse être interrompue en fermant le canal. Dans ce cas, tous les threads en attente du résultat de l’opération d’E/S lèvent CancellationException et toutes les autres opérations d’E/S en suspens sur le canal se terminent avec l’exception AsynchronousCloseException.

Lorsque la cancel méthode est appelée pour annuler les opérations de lecture ou d’écriture, il est recommandé que toutes les mémoires tampons utilisées dans les opérations d’E/S soient ignorées ou prises en charge pour s’assurer que les mémoires tampons ne sont pas accessibles pendant que le canal reste ouvert.

Ajouté dans la version 1.7.

Documentation Java pour java.nio.channels.AsynchronousChannel.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Propriétés

Handle

Obtient la valeur JNI de l’objet Android sous-jacent.

(Hérité de IJavaObject)
IsOpen

Retourne true si ce canal est ouvert.

(Hérité de IChannel)
JniIdentityHashCode

Retourne la valeur de java.lang.System.identityHashCode() l’instance encapsulée.

(Hérité de IJavaPeerable)
JniManagedPeerState

État de l’homologue managé.

(Hérité de IJavaPeerable)
JniPeerMembers

Prise en charge de l’accès aux membres et de l’appel.

(Hérité de IJavaPeerable)
PeerReference

Retourne une JniObjectReference instance d’objet Java encapsulée.

(Hérité de IJavaPeerable)

Méthodes

Close()

Ferme ce canal.

Disposed()

Appelé lorsque l’instance a été supprimée.

(Hérité de IJavaPeerable)
DisposeUnlessReferenced()

S’il n’existe aucune référence en suspens à cette instance, les appels Dispose(); sinon, ne fait rien.

(Hérité de IJavaPeerable)
Finalized()

Appelé lorsque l’instance a été finalisée.

(Hérité de IJavaPeerable)
SetJniIdentityHashCode(Int32)

Définissez la valeur retournée par JniIdentityHashCode.

(Hérité de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Canal qui prend en charge les opérations d’E/S asynchrones.

(Hérité de IJavaPeerable)
SetPeerReference(JniObjectReference)

Définissez la valeur retournée par PeerReference.

(Hérité de IJavaPeerable)
UnregisterFromRuntime()

Annulez l’inscription de cette instance afin que le runtime ne le retourne pas à partir d’appels futurs Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Hérité de IJavaPeerable)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Canal qui prend en charge les opérations d’E/S asynchrones.

GetJniTypeName(IJavaPeerable)

Canal qui prend en charge les opérations d’E/S asynchrones.

S’applique à