Compartilhar via


Selector.Select Método

Definição

Sobrecargas

Select(IConsumer, Int64)

Seleciona e executa uma ação nas teclas cujos canais correspondentes estão prontos para operações de E/S.

Select(Int64)

Seleciona um conjunto de chaves cujos canais correspondentes estão prontos para operações de E/S.

Select()

Seleciona um conjunto de chaves cujos canais correspondentes estão prontos para operações de E/S.

Select(IConsumer)

Seleciona e executa uma ação nas teclas cujos canais correspondentes estão prontos para operações de E/S.

Select(IConsumer, Int64)

Seleciona e executa uma ação nas teclas cujos canais correspondentes estão prontos para operações de E/S.

[Android.Runtime.Register("select", "(Ljava/util/function/Consumer;J)I", "GetSelect_Ljava_util_function_Consumer_JHandler", ApiSince=33)]
public virtual int Select (Java.Util.Functions.IConsumer? action, long timeout);
[<Android.Runtime.Register("select", "(Ljava/util/function/Consumer;J)I", "GetSelect_Ljava_util_function_Consumer_JHandler", ApiSince=33)>]
abstract member Select : Java.Util.Functions.IConsumer * int64 -> int
override this.Select : Java.Util.Functions.IConsumer * int64 -> int

Parâmetros

action
IConsumer

A ação a ser executada

timeout
Int64

Se positivo, bloquear por até timeout milissegundos, mais ou menos, enquanto espera que um canal fique pronto, se zero, bloquear indefinidamente, não deve ser negativo

Retornos

O número de chaves exclusivas consumidas, possivelmente zero

Atributos

Comentários

Seleciona e executa uma ação nas teclas cujos canais correspondentes estão prontos para operações de E/S.

Esse método executa uma operação de seleção de bloqueio. Ele desperta da consulta ao sistema operacional somente quando pelo menos um canal é selecionado, o método desse #wakeup wakeup seletor é chamado, o thread atual é interrompido ou o período de tempo limite fornecido expira, o que ocorrer primeiro.

O método da Consumer#accept(Object) accept ação especificada é invocado com a chave para cada canal que está pronto para executar uma operação identificada pelo conjunto de interesse de sua chave. O accept método pode ser invocado mais de uma vez para a mesma chave, mas com o conjunto de operações prontas contendo um subconjunto das operações para as quais o canal está pronto (conforme descrito acima). O accept método é chamado enquanto sincronizado no seletor e seu conjunto de teclas selecionadas. Muito cuidado deve ser tomado para evitar o deadlock com outros threads que também sincronizam nesses objetos. As operações de seleção não são reentrantes em geral e, consequentemente, a ação deve tomar muito cuidado para não tentar uma operação de seleção no mesmo seletor. O comportamento ao tentar uma operação de seleção de reentrada é específico da implementação e, portanto, não especificado. Se a ação fechar, o seletor será ClosedSelectorException lançado quando a ação for concluída. A ação não está proibida de fechar canais cadastrados no seletor, nem de cancelar chaves ou alterar o conjunto de interesses de uma chave. Se um canal for selecionado, mas sua chave for cancelada ou seu conjunto de interesses for alterado antes que a ação seja executada na chave, a implementação será específica para saber se a ação é invocada (ela pode ser invocada com uma SelectionKey#isValid() invalid chave). As exceções lançadas pela ação são retransmitidas ao chamador.

Este método não oferece garantias em tempo real: ele agenda o tempo limite como se invocasse o Object#wait(long) método.

Adicionado em 11.

Documentação Java para java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>, long).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a

Select(Int64)

Seleciona um conjunto de chaves cujos canais correspondentes estão prontos para operações de E/S.

[Android.Runtime.Register("select", "(J)I", "GetSelect_JHandler")]
public abstract int Select (long timeout);
[<Android.Runtime.Register("select", "(J)I", "GetSelect_JHandler")>]
abstract member Select : int64 -> int

Parâmetros

timeout
Int64

Se positivo, bloquear por até timeout milissegundos, mais ou menos, enquanto espera que um canal fique pronto, se zero, bloquear indefinidamente, não deve ser negativo

Retornos

O número de chaves, possivelmente zero, cujos conjuntos de operação pronta foram atualizados

Atributos

Exceções

se o seletor estiver fechado.

se o argumento de tempo limite fornecido for menor que zero.

se ocorrer um erro de E/S.

Comentários

Seleciona um conjunto de chaves cujos canais correspondentes estão prontos para operações de E/S.

Esse método executa uma operação de seleção de bloqueio. Ele retorna somente depois que pelo menos um canal é selecionado, o método desse #wakeup wakeup seletor é chamado, o thread atual é interrompido ou o período de tempo limite determinado expira, o que ocorrer primeiro.

Este método não oferece garantias em tempo real: ele agenda o tempo limite como se invocasse o Object#wait(long) método.

Documentação Java para java.nio.channels.Selector.select(long).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a

Select()

Seleciona um conjunto de chaves cujos canais correspondentes estão prontos para operações de E/S.

[Android.Runtime.Register("select", "()I", "GetSelectHandler")]
public abstract int Select ();
[<Android.Runtime.Register("select", "()I", "GetSelectHandler")>]
abstract member Select : unit -> int

Retornos

O número de chaves, possivelmente zero, cujos conjuntos de operação pronta foram atualizados

Atributos

Exceções

se ocorrer um erro de E/S.

se o seletor estiver fechado.

Comentários

Seleciona um conjunto de chaves cujos canais correspondentes estão prontos para operações de E/S.

Esse método executa uma operação de seleção de bloqueio. Ele retorna somente depois que pelo menos um canal é selecionado, o método desse #wakeup wakeup seletor é chamado ou o thread atual é interrompido, o que ocorrer primeiro.

Documentação Java para java.nio.channels.Selector.select().

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a

Select(IConsumer)

Seleciona e executa uma ação nas teclas cujos canais correspondentes estão prontos para operações de E/S.

[Android.Runtime.Register("select", "(Ljava/util/function/Consumer;)I", "GetSelect_Ljava_util_function_Consumer_Handler", ApiSince=33)]
public virtual int Select (Java.Util.Functions.IConsumer? action);
[<Android.Runtime.Register("select", "(Ljava/util/function/Consumer;)I", "GetSelect_Ljava_util_function_Consumer_Handler", ApiSince=33)>]
abstract member Select : Java.Util.Functions.IConsumer -> int
override this.Select : Java.Util.Functions.IConsumer -> int

Parâmetros

action
IConsumer

A ação a ser executada

Retornos

O número de chaves exclusivas consumidas, possivelmente zero

Atributos

Comentários

Seleciona e executa uma ação nas teclas cujos canais correspondentes estão prontos para operações de E/S.

Esse método executa uma operação de seleção de bloqueio. Ele desperta da consulta ao sistema operacional somente quando pelo menos um canal é selecionado, o método desse #wakeup wakeup seletor é chamado ou o thread atual é interrompido, o que ocorrer primeiro.

Esse método é equivalente a invocar o método 2-arg #select(Consumer, long) select com um tempo limite de 0 para bloquear indefinidamente.

Adicionado em 11.

Documentação Java para java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a