Freigeben über


Selector.Select Methode

Definition

Überlädt

Select(IConsumer, Int64)

Wählt eine Aktion für die Schlüssel aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind, und führt sie aus.

Select(Int64)

Wählt eine Reihe von Schlüsseln aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind.

Select()

Wählt eine Reihe von Schlüsseln aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind.

Select(IConsumer)

Wählt eine Aktion für die Schlüssel aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind, und führt sie aus.

Select(IConsumer, Int64)

Wählt eine Aktion für die Schlüssel aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind, und führt sie aus.

[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

Parameter

action
IConsumer

Auszuführende Aktion

timeout
Int64

Wenn positiv, blockieren Sie bis zu timeout Millisekunden, mehr oder weniger, während sie warten, dass ein Kanal bereit ist; wenn Null, auf unbestimmte Zeit blockieren; darf nicht negativ sein

Gibt zurück

Die Anzahl der verbrauchten eindeutigen Schlüssel, möglicherweise Null

Attribute

Hinweise

Wählt eine Aktion für die Schlüssel aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind, und führt sie aus.

Diese Methode führt einen Blockierungsauswahlvorgang aus. Es wird vom Abfragen des Betriebssystems erst aktiviert, wenn mindestens ein Kanal ausgewählt ist, die Methode dieser Selektor #wakeup wakeup aufgerufen wird, der aktuelle Thread unterbrochen wird oder der angegebene Timeoutzeitraum abläuft, je nachdem, welcher Zeitpunkt zuerst eintritt.

Die Methode der Consumer#accept(Object) accept angegebenen Aktion wird mit dem Schlüssel für jeden Kanal aufgerufen, der bereit ist, einen Vorgang auszuführen, der durch den Interessensatz des Schlüssels identifiziert wird. Die accept Methode kann für denselben Schlüssel mehrmals aufgerufen werden, jedoch mit dem Set für den ready-operation mit einer Teilmenge der Vorgänge, für die der Kanal bereit ist (wie oben beschrieben). Die accept Methode wird aufgerufen, während sie auf dem Selektor und dem ausgewählten Schlüsselsatz synchronisiert wird. Es muss darauf geachtet werden, das Deadlocking mit anderen Threads zu vermeiden, die auch für diese Objekte synchronisiert werden. Auswahlvorgänge werden im Allgemeinen nicht wiederholt, und daher sollte die Aktion sehr wichtig sein, keinen Auswahlvorgang auf demselben Selektor zu versuchen. Das Verhalten beim Versuch eines erneuten Auswahlvorgangs ist implementierungsspezifisch und daher nicht angegeben. Wenn die Aktion die Auswahl schließt, wird die ClosedSelectorException Aktion ausgelöst, wenn die Aktion abgeschlossen ist. Die Aktion ist nicht daran verboten, kanäle zu schließen, die bei der Auswahl registriert sind, oder das Abbrechen von Schlüsseln oder das Ändern des Interessensatzes eines Schlüssels untersagt. Wenn ein Kanal ausgewählt ist, aber sein Schlüssel abgebrochen wird oder sein Interessensatz geändert wurde, bevor die Aktion für den Schlüssel ausgeführt wird, ist sie für die Implementierung spezifisch, ob die Aktion aufgerufen wird (sie kann mit einem SelectionKey#isValid() invalid Schlüssel aufgerufen werden). Ausnahmen, die von der Aktion ausgelöst werden, werden an den Aufrufer weitergeleitet.

Diese Methode bietet keine Echtzeitgarantien: Sie plant das Timeout so, als ob sie die Object#wait(long) Methode aufruft.

In 11 hinzugefügt.

Java-Dokumentation für java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>, long).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Select(Int64)

Wählt eine Reihe von Schlüsseln aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind.

[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

Parameter

timeout
Int64

Wenn positiv, blockieren Sie bis zu timeout Millisekunden, mehr oder weniger, während sie warten, dass ein Kanal bereit ist; wenn Null, auf unbestimmte Zeit blockieren; darf nicht negativ sein

Gibt zurück

Die Anzahl der Schlüssel, möglicherweise 0, deren Ready-Operation-Sätze aktualisiert wurden

Attribute

Ausnahmen

wenn die Auswahl geschlossen ist.

wenn das angegebene Timeoutargument kleiner als 0 ist.

wenn ein E/A-Fehler auftritt.

Hinweise

Wählt eine Reihe von Schlüsseln aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind.

Diese Methode führt einen Blockierungsauswahlvorgang aus. Sie wird erst zurückgegeben, nachdem mindestens ein Kanal ausgewählt wurde, die Methode dieses Selektors #wakeup wakeup aufgerufen wird, der aktuelle Thread unterbrochen wird oder der angegebene Timeoutzeitraum abläuft, je nachdem, was zuerst eintritt.

Diese Methode bietet keine Echtzeitgarantien: Sie plant das Timeout so, als ob sie die Object#wait(long) Methode aufruft.

Java-Dokumentation für java.nio.channels.Selector.select(long).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Select()

Wählt eine Reihe von Schlüsseln aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind.

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

Gibt zurück

Die Anzahl der Schlüssel, möglicherweise 0, deren Ready-Operation-Sätze aktualisiert wurden

Attribute

Ausnahmen

wenn ein E/A-Fehler auftritt.

wenn die Auswahl geschlossen ist.

Hinweise

Wählt eine Reihe von Schlüsseln aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind.

Diese Methode führt einen Blockierungsauswahlvorgang aus. Sie wird erst zurückgegeben, nachdem mindestens ein Kanal ausgewählt wurde, die Methode dieses Selektors #wakeup wakeup aufgerufen wird oder der aktuelle Thread unterbrochen wird, je nachdem, was zuerst eintritt.

Java-Dokumentation für java.nio.channels.Selector.select().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Select(IConsumer)

Wählt eine Aktion für die Schlüssel aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind, und führt sie aus.

[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

Parameter

action
IConsumer

Auszuführende Aktion

Gibt zurück

Die Anzahl der verbrauchten eindeutigen Schlüssel, möglicherweise Null

Attribute

Hinweise

Wählt eine Aktion für die Schlüssel aus, deren entsprechende Kanäle für E/A-Vorgänge bereit sind, und führt sie aus.

Diese Methode führt einen Blockierungsauswahlvorgang aus. Es wird erst nach dem Abfragen des Betriebssystems aktiviert, wenn mindestens ein Kanal ausgewählt ist, die Methode dieses Selektors #wakeup wakeup aufgerufen wird oder der aktuelle Thread unterbrochen wird, je nachdem, was zuerst eintritt.

Diese Methode entspricht dem Aufrufen der 2-Arg-Methode #select(Consumer, long) select mit einem Timeout, das 0 unbegrenzt blockiert werden soll.

In 11 hinzugefügt.

Java-Dokumentation für java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: