IAsynchronousChannel Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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}<V> <em>operation</em>(<em>...</em>)
</li li><>
void <em>operation</em>(<em>...</em> A attachment, {@link
CompletionHandler}<V,? super A> 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 |
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 |
Finalized() |
Se llama cuando se ha finalizado la instancia. (Heredado de IJavaPeerable) |
SetJniIdentityHashCode(Int32) |
Establezca el valor devuelto por |
SetJniManagedPeerState(JniManagedPeerStates) |
Canal que admite operaciones asincrónicas de E/S. (Heredado de IJavaPeerable) |
SetPeerReference(JniObjectReference) |
Establezca el valor devuelto por |
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. |