IAsynchronousChannel Interface
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Um canal que dá suporte a operações de E/S assíncronas.
[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
- Implementações
Comentários
Um canal que dá suporte a operações de E/S assíncronas. As operações de E/S assíncrona geralmente tomarão uma das duas 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>
em que a operação é o nome da operação de E/S (leitura ou gravação, por exemplo), V é o tipo de resultado da operação de E/S e A é o tipo de um objeto anexado à operação de E/S para fornecer contexto ao consumir o resultado. O anexo é importante para casos em que um <em>state-less</em>CompletionHandler é usado para consumir o resultado de muitas operações de E/S.
No primeiro formulário, os métodos definidos pela Future Future interface podem ser usados para verificar se a operação foi concluída, aguardar sua conclusão e recuperar o resultado. No segundo formulário, um CompletionHandler é invocado para consumir o resultado da operação de E/S quando ela é concluída ou falha.
Um canal que implementa essa interface é <em>assíncronamente próximo</em>: se uma operação de E/S estiver pendente no canal e o método do #close close canal for invocado, a operação de E/S falhará com a exceção AsynchronousCloseException.
Canais assíncronos são seguros para uso por vários threads simultâneos. Algumas implementações de canal podem dar suporte à leitura e à gravação simultâneas, mas podem não permitir que mais de uma operação de leitura e uma gravação sejam pendentes em um determinado momento.
<h2>Cancelamento</h2>
A Future interface define o Future#cancel cancel método para cancelar a execução. Isso faz com que todos os threads que aguardam o resultado da operação de E/S lancem java.util.concurrent.CancellationException. Se a operação de E/S subjacente pode ser cancelada é altamente específica de implementação e, portanto, não especificada. Quando o cancelamento sai do canal ou da entidade à qual ele está conectado, em um estado inconsistente, o canal é colocado em um estado< de erro específico> de implementação <>que impede novas tentativas de iniciar operações de E/S semelhantes à operação que foi cancelada. Por exemplo, se uma operação de leitura for cancelada, mas a implementação não puder garantir que os bytes não tenham sido lidos do canal, ele colocará o canal em um estado de erro; novas tentativas de iniciar uma read operação fazem com que uma exceção de runtime não especificada seja gerada. Da mesma forma, se uma operação de gravação for cancelada, mas a implementação não puder garantir que os bytes não tenham sido gravados no canal, as tentativas subsequentes de iniciar uma write falha com uma exceção de runtime não especificada.
Onde o Future#cancel cancel método é invocado com o mayInterruptIfRunning parâmetro definido para true , em seguida, a operação de E/S pode ser interrompida fechando o canal. Nesse caso, todos os threads aguardando o resultado do lançamento CancellationException da operação de E/S e quaisquer outras operações de E/S pendentes no canal são concluídos com a exceção AsynchronousCloseException.
Quando o cancel método é invocado para cancelar operações de leitura ou gravação, é recomendável que todos os buffers usados nas operações de E/S sejam descartados ou cuidado para garantir que os buffers não sejam acessados enquanto o canal permanecer aberto.
Adicionado em 1.7.
Java documentação para java.nio.channels.AsynchronousChannel.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Propriedades
| Nome | Description |
|---|---|
| Handle |
Obtém o valor JNI do objeto Android subjacente. (Herdado de IJavaObject) |
| IsOpen |
Retornará true se este canal estiver aberto. (Herdado de IChannel) |
| JniIdentityHashCode |
Retorna o valor da |
| JniManagedPeerState |
Estado do par gerenciado. (Herdado de IJavaPeerable) |
| JniPeerMembers |
Acesso ao membro e suporte à invocação. (Herdado de IJavaPeerable) |
| PeerReference |
Retorna uma JniObjectReference das instâncias de objeto Java encapsuladas. (Herdado de IJavaPeerable) |
Métodos
| Nome | Description |
|---|---|
| Close() |
Fecha este canal. |
| Disposed() |
Chamado quando a instância foi descartada. (Herdado de IJavaPeerable) |
| DisposeUnlessReferenced() |
Se não houver referências pendentes a essa instância, então chamará |
| Finalized() |
Chamado quando a instância foi finalizada. (Herdado de IJavaPeerable) |
| SetJniIdentityHashCode(Int32) |
Defina o valor retornado por |
| SetJniManagedPeerState(JniManagedPeerStates) |
Um canal que dá suporte a operações de E/S assíncronas. (Herdado de IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Defina o valor retornado por |
| UnregisterFromRuntime() |
Cancele o registro dessa instância para que o runtime não a retorne de invocações futuras Java.Interop.JniRuntime+JniValueManager.PeekValue . (Herdado de IJavaPeerable) |
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
Um canal que dá suporte a operações de E/S assíncronas. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |