Compartir a través de


Selector.Select Método

Definición

Sobrecargas

Select(IConsumer, Int64)

Selecciona y realiza una acción en las claves cuyos canales correspondientes están listos para las operaciones de E/S.

Select(Int64)

Selecciona un conjunto de claves cuyos canales correspondientes están listos para las operaciones de E/S.

Select()

Selecciona un conjunto de claves cuyos canales correspondientes están listos para las operaciones de E/S.

Select(IConsumer)

Selecciona y realiza una acción en las claves cuyos canales correspondientes están listos para las operaciones de E/S.

Select(IConsumer, Int64)

Selecciona y realiza una acción en las claves cuyos canales correspondientes están listos para las operaciones 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

La acción que se va a realizar

timeout
Int64

Si es positivo, bloquee hasta timeout milisegundos, más o menos, mientras espera a que un canal esté listo; si cero, bloquee indefinidamente; no debe ser negativo.

Devoluciones

Número de claves únicas consumidas, posiblemente cero

Atributos

Comentarios

Selecciona y realiza una acción en las claves cuyos canales correspondientes están listos para las operaciones de E/S.

Este método realiza una operación de selección de bloqueo. Se reactiva desde la consulta del sistema operativo solo cuando se selecciona al menos un canal, se invoca el método del #wakeup wakeup selector, se interrumpe el subproceso actual o expira el período de tiempo de espera especificado, lo que ocurra primero.

El método de la Consumer#accept(Object) accept acción especificada se invoca con la clave de cada canal que está listo para realizar una operación identificada por el interés de su clave. El accept método se puede invocar más de una vez para la misma clave, pero con el conjunto de operaciones preparadas que contiene un subconjunto de las operaciones para las que el canal está listo (como se ha descrito anteriormente). El accept método se invoca mientras se sincroniza en el selector y su conjunto de claves seleccionado. Se debe tener gran cuidado para evitar interbloqueos con otros subprocesos que también se sincronicen en estos objetos. Las operaciones de selección no son reentrantes en general y, por consiguiente, la acción debe tener mucho cuidado de no intentar realizar una operación de selección en el mismo selector. El comportamiento al intentar una operación de selección reentrant es específico de la implementación y, por tanto, no se especifica. Si la acción cierra el selector, ClosedSelectorException se produce cuando se completa la acción. La acción no está prohibida para cerrar canales registrados con el selector, ni no se prohíbe cancelar las claves ni cambiar el interés de una clave establecida. Si se selecciona un canal, pero su clave se cancela o su interés establecido cambia antes de que la acción se realice en la clave, es específica de la implementación en cuanto a si se invoca la acción (se puede invocar con una SelectionKey#isValid() invalid clave). Las excepciones producidas por la acción se retransmiten al autor de la llamada.

Este método no ofrece garantías en tiempo real: programa el tiempo de espera como si invocara el Object#wait(long) método .

Agregado en 11.

Documentación de Java para java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>, long).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a

Select(Int64)

Selecciona un conjunto de claves cuyos canales correspondientes están listos para las operaciones 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

Si es positivo, bloquee hasta timeout milisegundos, más o menos, mientras espera a que un canal esté listo; si cero, bloquee indefinidamente; no debe ser negativo.

Devoluciones

Número de claves, posiblemente cero, cuyos conjuntos de operaciones listos se actualizaron

Atributos

Excepciones

si el selector está cerrado.

si el argumento de tiempo de espera especificado es menor que cero.

si se produce un error de E/S.

Comentarios

Selecciona un conjunto de claves cuyos canales correspondientes están listos para las operaciones de E/S.

Este método realiza una operación de selección de bloqueo. Solo devuelve después de seleccionar al menos un canal, se invoca el método de #wakeup wakeup este selector, se interrumpe el subproceso actual o expira el período de tiempo de espera determinado, lo que ocurra primero.

Este método no ofrece garantías en tiempo real: programa el tiempo de espera como si invocara el Object#wait(long) método .

Documentación de Java para java.nio.channels.Selector.select(long).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a

Select()

Selecciona un conjunto de claves cuyos canales correspondientes están listos para las operaciones de E/S.

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

Devoluciones

Número de claves, posiblemente cero, cuyos conjuntos de operaciones listos se actualizaron

Atributos

Excepciones

si se produce un error de E/S.

si el selector está cerrado.

Comentarios

Selecciona un conjunto de claves cuyos canales correspondientes están listos para las operaciones de E/S.

Este método realiza una operación de selección de bloqueo. Devuelve solo después de seleccionar al menos un canal, se invoca el método de #wakeup wakeup este selector o se interrumpe el subproceso actual, lo que ocurra primero.

Documentación de Java para java.nio.channels.Selector.select().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a

Select(IConsumer)

Selecciona y realiza una acción en las claves cuyos canales correspondientes están listos para las operaciones 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

La acción que se va a realizar

Devoluciones

Número de claves únicas consumidas, posiblemente cero

Atributos

Comentarios

Selecciona y realiza una acción en las claves cuyos canales correspondientes están listos para las operaciones de E/S.

Este método realiza una operación de selección de bloqueo. Se reactiva desde la consulta del sistema operativo solo cuando se selecciona al menos un canal, se invoca el método del #wakeup wakeup selector o se interrumpe el subproceso actual, lo que ocurra primero.

Este método es equivalente a invocar el método 2-arg #select(Consumer, long) select con un tiempo de espera de 0 para bloquear indefinidamente.

Agregado en 11.

Documentación de Java para java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a