Condividi tramite


Selector.Select Metodo

Definizione

Overload

Select(IConsumer, Int64)

Seleziona ed esegue un'azione sulle chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

Select(Int64)

Seleziona un set di chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

Select()

Seleziona un set di chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

Select(IConsumer)

Seleziona ed esegue un'azione sulle chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

Select(IConsumer, Int64)

Seleziona ed esegue un'azione sulle chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

[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

Parametri

action
IConsumer

Azione da eseguire

timeout
Int64

Se positivo, blocca per un massimo di timeout millisecondi, più o meno, durante l'attesa che un canale diventi pronto; se zero, blocca per un periodo illimitato; non deve essere negativo

Restituisce

Numero di chiavi univoco utilizzate, possibilmente zero

Attributi

Commenti

Seleziona ed esegue un'azione sulle chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

Questo metodo esegue un'operazione di selezione di blocco. Si riattiva dall'esecuzione di query sul sistema operativo solo quando viene selezionato almeno un canale, viene richiamato il metodo del #wakeup wakeup selettore, il thread corrente viene interrotto o il periodo di timeout specificato scade, a seconda del primo.

Il metodo dell'azione Consumer#accept(Object) acceptspecificata viene richiamato con la chiave per ogni canale pronto per eseguire un'operazione identificata dal set di interessi della chiave. Il accept metodo può essere richiamato più volte per la stessa chiave, ma con il set di operazioni pronto contenente un subset delle operazioni per cui il canale è pronto (come descritto in precedenza). Il accept metodo viene richiamato durante la sincronizzazione del selettore e del relativo set di chiavi selezionato. È necessario prestare molta attenzione per evitare il deadlock con altri thread che si sincronizzano anche su questi oggetti. Le operazioni di selezione non rientrano in generale e di conseguenza l'azione deve prestare molta attenzione a non tentare un'operazione di selezione sullo stesso selettore. Il comportamento durante il tentativo di un'operazione di selezione ricorsiva è specifico dell'implementazione e pertanto non specificato. Se l'azione chiude il selettore, ClosedSelectorException viene generata al termine dell'azione. L'azione non è vietata la chiusura dei canali registrati con il selettore, né non è consentito annullare le chiavi o modificare il set di interessi di una chiave. Se un canale è selezionato, ma la chiave viene annullata o il relativo set di interessi è stato modificato prima che l'azione venga eseguita sulla chiave, è specifica dell'implementazione per stabilire se l'azione viene richiamata (può essere richiamata con una SelectionKey#isValid() invalid chiave). Le eccezioni generate dall'azione vengono inoltrate al chiamante.

Questo metodo non offre garanzie in tempo reale: pianifica il timeout come se richiamasse il Object#wait(long) metodo .

Aggiunta in 11.

Documentazione java per java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>, long).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

Select(Int64)

Seleziona un set di chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

[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

Parametri

timeout
Int64

Se positivo, blocca per un massimo di timeout millisecondi, più o meno, durante l'attesa che un canale diventi pronto; se zero, blocca per un periodo illimitato; non deve essere negativo

Restituisce

Numero di chiavi, possibilmente zero, i cui set di operazioni pronte sono stati aggiornati

Attributi

Eccezioni

se il selettore è chiuso.

se l'argomento timeout specificato è minore di zero.

se si verifica un errore di I/O.

Commenti

Seleziona un set di chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

Questo metodo esegue un'operazione di selezione di blocco. Viene restituito solo dopo che è stato selezionato almeno un canale, viene richiamato il metodo del #wakeup wakeup selettore, il thread corrente viene interrotto o il periodo di timeout specificato scade, a qualunque punto venga raggiunto per primo.

Questo metodo non offre garanzie in tempo reale: pianifica il timeout come se richiamasse il Object#wait(long) metodo .

Documentazione java per java.nio.channels.Selector.select(long).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

Select()

Seleziona un set di chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

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

Restituisce

Numero di chiavi, possibilmente zero, i cui set di operazioni pronte sono stati aggiornati

Attributi

Eccezioni

se si verifica un errore di I/O.

se il selettore è chiuso.

Commenti

Seleziona un set di chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

Questo metodo esegue un'operazione di selezione di blocco. Restituisce solo dopo che è stato selezionato almeno un canale, il metodo del #wakeup wakeup selettore viene richiamato o il thread corrente viene interrotto, a qualsiasi punto.

Documentazione java per java.nio.channels.Selector.select().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

Select(IConsumer)

Seleziona ed esegue un'azione sulle chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

[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

Parametri

action
IConsumer

Azione da eseguire

Restituisce

Numero di chiavi univoco utilizzate, possibilmente zero

Attributi

Commenti

Seleziona ed esegue un'azione sulle chiavi i cui canali corrispondenti sono pronti per le operazioni di I/O.

Questo metodo esegue un'operazione di selezione di blocco. Si riattiva dall'esecuzione di query sul sistema operativo solo quando viene selezionato almeno un canale, questo metodo del #wakeup wakeup selettore viene richiamato o il thread corrente viene interrotto, a seconda del primo.

Questo metodo equivale a richiamare il metodo 2-arg #select(Consumer, long) select con un timeout di 0 da bloccare per un periodo illimitato.

Aggiunta in 11.

Documentazione java per java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a