IAsynchronousChannel Interface
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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}<V> <em>operation</em>(<em>...</em>)
</li li><>
void <em>operation</em>(<em>...</em> A attachment, {@link
CompletionHandler}<V,? super A> handler)
</li></ol>
où 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.CancellationException
de 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 |
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 |
Finalized() |
Appelé lorsque l’instance a été finalisée. (Hérité de IJavaPeerable) |
SetJniIdentityHashCode(Int32) |
Définissez la valeur retournée par |
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 |
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. |