Compartir a través de


IAsynchronousChannel Interfaz

Definición

Canal que admite operaciones asincrónicas de E/S.

[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
Derivado
Atributos
Implementaciones

Comentarios

Canal que admite operaciones asincrónicas de E/S. Las operaciones asincrónicas de E/S normalmente tendrán una de estas dos formas:

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

donde operation es el nombre de la operación de E/S (lectura o escritura por ejemplo), V es el tipo de resultado de la operación de E/S y A es el tipo de un objeto asociado a la operación de E/S para proporcionar contexto al consumir el resultado. Los datos adjuntos son importantes en los casos en los que se usa em <>state-less</em>CompletionHandler para consumir el resultado de muchas operaciones de E/S.

En el primer formulario, los métodos definidos por la Future Future interfaz se pueden usar para comprobar si la operación se ha completado, esperar su finalización y recuperar el resultado. En el segundo formulario, CompletionHandler se invoca a para consumir el resultado de la operación de E/S cuando se completa o se produce un error.

Un canal que implementa esta interfaz se <puede cerrar de forma asincrónica/em>: si una operación de E/S está pendiente en el canal y se invoca el método del #close close canal, se produce un error en la operación de E/S con la excepción AsynchronousCloseException.<>

Los canales asincrónicos son seguros para su uso por varios subprocesos simultáneos. Algunas implementaciones de canal pueden admitir lectura y escritura simultáneas, pero es posible que no permitan que más de una operación de lectura y escritura estén pendientes en un momento dado.

<h2>Cancelación</h2>

La Future interfaz define el método para cancelar la Future#cancel cancel ejecución. Esto hace que todos los subprocesos que esperan el resultado de la operación de E/S inicien java.util.concurrent.CancellationException. Si la operación de E/S subyacente se puede cancelar es muy específica de la implementación y, por tanto, no se especifica. Cuando la cancelación deja el canal o la entidad a la que está conectado, en un estado incoherente, el canal se coloca en un estado< de error em>específico <de implementación/em> que impide que se intenten iniciar operaciones de E/S similares a la operación que se canceló. Por ejemplo, si se cancela una operación de lectura, pero la implementación no puede garantizar que los bytes no se hayan leído desde el canal, el canal se coloca en un estado de error; los intentos adicionales de iniciar una read operación hacen que se produzca una excepción en tiempo de ejecución no especificada. Del mismo modo, si se cancela una operación de escritura, pero la implementación no puede garantizar que los bytes no se hayan escrito en el canal, los intentos posteriores de iniciar un write error producirán un error con una excepción en tiempo de ejecución no especificada.

Cuando se invoca el Future#cancel cancel método con el mayInterruptIfRunning parámetro establecido en true , la operación de E/S puede interrumpirse cerrando el canal. En ese caso, todos los subprocesos que esperan el resultado de la operación de E/S inician CancellationException y cualquier otra operación de E/S pendiente en el canal se complete con la excepción AsynchronousCloseException.

Cuando se invoca el cancel método para cancelar las operaciones de lectura o escritura, se recomienda descartar todos los búferes usados en las operaciones de E/S o tener cuidado para asegurarse de que no se tiene acceso a los búferes mientras el canal permanece abierto.

Agregado en la versión 1.7.

Documentación de Java para java.nio.channels.AsynchronousChannel.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Propiedades

Handle

Obtiene el valor JNI del objeto Android subyacente.

(Heredado de IJavaObject)
IsOpen

Devuelve true si este canal está abierto.

(Heredado de IChannel)
JniIdentityHashCode

Devuelve el valor de java.lang.System.identityHashCode() para la instancia ajustada.

(Heredado de IJavaPeerable)
JniManagedPeerState

Estado del mismo nivel administrado.

(Heredado de IJavaPeerable)
JniPeerMembers

Compatibilidad con la invocación y el acceso de miembros.

(Heredado de IJavaPeerable)
PeerReference

Devuelve una JniObjectReference de la instancia de objeto Java ajustada.

(Heredado de IJavaPeerable)

Métodos

Close()

Cierra este canal.

Disposed()

Se llama cuando se ha eliminado la instancia.

(Heredado de IJavaPeerable)
DisposeUnlessReferenced()

Si no hay referencias pendientes a esta instancia, llama a Dispose(); de lo contrario, no hace nada.

(Heredado de IJavaPeerable)
Finalized()

Se llama cuando se ha finalizado la instancia.

(Heredado de IJavaPeerable)
SetJniIdentityHashCode(Int32)

Establezca el valor devuelto por JniIdentityHashCode.

(Heredado de IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

Canal que admite operaciones asincrónicas de E/S.

(Heredado de IJavaPeerable)
SetPeerReference(JniObjectReference)

Establezca el valor devuelto por PeerReference.

(Heredado de IJavaPeerable)
UnregisterFromRuntime()

Anule el registro de esta instancia para que el entorno de ejecución no lo devuelva de invocaciones futuras Java.Interop.JniRuntime+JniValueManager.PeekValue .

(Heredado de IJavaPeerable)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Canal que admite operaciones asincrónicas de E/S.

GetJniTypeName(IJavaPeerable)

Canal que admite operaciones asincrónicas de E/S.

Se aplica a