Selector.Select Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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.
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.