SelectableChannel Classe

Definição

Um canal que pode ser multiplexado por meio de um Selector.

[Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)]
public abstract class SelectableChannel : Java.Nio.Channels.Spi.AbstractInterruptibleChannel, IDisposable
[<Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)>]
type SelectableChannel = class
    inherit AbstractInterruptibleChannel
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Herança
Derivado
Atributos
Implementações

Comentários

Um canal que pode ser multiplexado por meio de um Selector.

Para ser usada com um seletor, uma instância dessa classe deve primeiro ser registrada por meio do #register(Selector,int,Object) register método. Esse método retorna um novo SelectionKey objeto que representa o registro do canal com o seletor.

Depois de registrado com um seletor, um canal permanecerá registrado até que ele seja desregistrado. Isso envolve desalocar todos os recursos que foram alocados para o canal pelo seletor.

Um canal não pode ser desregistrado diretamente; Em vez disso, a chave que representa seu registro deve ser cancelada. Cancelando uma solicitação de chave para que o canal seja desregistrado durante a próxima operação de seleção do seletor. Uma chave pode ser cancelada explicitamente invocando seu SelectionKey#cancel() cancel método. Todas as chaves de um canal são canceladas implicitamente quando o canal é fechado, seja invocando seu Channel#close close método ou interrompendo um thread bloqueado em uma operação de E/S no canal.

Se o seletor em si estiver fechado, o canal será desregistrado e a chave que representa seu registro será invalidada, sem mais atrasos.

Um canal pode ser registrado no máximo uma vez com qualquer seletor específico.

Se um canal está registrado ou não com um ou mais seletores pode ser determinado invocando o #isRegistered isRegistered método.

Canais selecionáveis são seguros para uso por vários threads simultâneos.

"bm"><h2>Modo de bloqueio</h2>

Um canal selecionável está no modo de bloqueio ou no modo de não bloqueio . No modo de bloqueio, cada operação de E/S invocada no canal será bloqueada até que seja concluída. No modo de não bloqueio, uma operação de E/S nunca será bloqueada e poderá transferir menos bytes do que foram solicitados ou possivelmente nenhum bytes. O modo de bloqueio de um canal selecionável pode ser determinado invocando seu #isBlocking isBlocking método.

Os canais selecionáveis recém-criados estão sempre no modo de bloqueio. O modo de não bloqueio é mais útil em conjunto com o multiplexing baseado em seletor. Um canal deve ser colocado no modo de não bloqueio antes de ser registrado com um seletor e pode não ser retornado ao modo de bloqueio até que tenha sido desregistrado.

Adicionado em 1.4.

Documentação Java para java.nio.channels.SelectableChannel.

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.

Construtores

Nome Description
SelectableChannel()

Inicializa uma nova instância dessa classe.

SelectableChannel(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Propriedades

Nome Description
Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
IsBlocking

Indica se esse canal está no modo de bloqueio.

IsOpen

Retornará true se este canal estiver aberto.

(Herdado de AbstractInterruptibleChannel)
IsRegistered

Indica se esse canal está registrado com pelo menos um seletor.

JniIdentityHashCode

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
JniPeerMembers

Um canal que pode ser multiplexado por meio de um Selector.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Nome Description
Begin()

Marca o início de uma operação de E/S que pode bloquear indefinidamente.

(Herdado de AbstractInterruptibleChannel)
BlockingLock()

Recupera o objeto no qual os métodos e #configureBlocking configureBlocking os #register register métodos sincronizam.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Close()

Fecha este canal.

(Herdado de AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

Ajusta o modo de bloqueio desse canal.

Construct(JniObjectReference, JniObjectReferenceOptions)

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
End(Boolean)

Marca o fim de uma operação de E/S que pode bloquear indefinidamente.

(Herdado de AbstractInterruptibleChannel)
Equals(Object)

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
ImplCloseChannel()

Fecha este canal.

(Herdado de AbstractInterruptibleChannel)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
KeyFor(Selector)

Recupera a chave que representa o registro do canal com o seletor especificado.

Notify()

Ativa um único thread que está aguardando no monitor desse objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
Provider()

Retorna o provedor que criou este canal.

Register(Selector, Operations, Object)

Registra esse canal com o seletor especificado, retornando uma chave de seleção.

Register(Selector, Operations)

Registra esse canal com o seletor especificado, retornando uma chave de seleção.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
ValidOps()

Retorna um conjunto de operações que identifica as operações com suporte deste canal.

Wait()

Faz com que o thread atual aguarde até que seja despertado, normalmente sendo <notificado></em> ou <em>interrompido</em>.

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Um canal que pode ser multiplexado por meio de um Selector.

(Herdado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Um canal que pode ser multiplexado por meio de um Selector.

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

Um canal que pode ser multiplexado por meio de um Selector.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a