Selector.Select Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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) accept
specificata 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.
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.
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.