SelectableChannel Classe
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 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 |
| 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 |
| JniPeerMembers |
Um canal que pode ser multiplexado por meio de um |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| IJavaPeerable.Finalized() |
Um canal que pode ser multiplexado por meio de um |
| IJavaPeerable.JniObjectReferenceControlBlock |
Um canal que pode ser multiplexado por meio de um |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Um canal que pode ser multiplexado por meio de um |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Um canal que pode ser multiplexado por meio de um |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Um canal que pode ser multiplexado por meio de um |
| IJavaPeerable.UnregisterFromRuntime() |
Um canal que pode ser multiplexado por meio de um |
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 pode ser multiplexado por meio de um |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |