Selector.Select Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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.
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.
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.