Selector.Select Método
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.
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.
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.
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.