Share via


SelectableChannel Klasse

Definition

Ein Kanal, der über ein Selectormultiplexiert werden kann.

[Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)]
public abstract class SelectableChannel : Java.Nio.Channels.Spi.AbstractInterruptibleChannel, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)>]
type SelectableChannel = class
    inherit AbstractInterruptibleChannel
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Vererbung
Abgeleitet
Attribute
Implementiert

Hinweise

Ein Kanal, der über ein Selectormultiplexiert werden kann.

Um mit einem Selektor verwendet zu werden, muss zuerst ein instance dieser Klasse über die #register(Selector,int,Object) register -Methode registriert werden. Diese Methode gibt ein neues SelectionKey Objekt zurück, das die Registrierung des Kanals beim Selektor darstellt.

Nach der Registrierung bei einem Selektor bleibt ein Kanal registriert, bis er aufgehoben wird. Dies beinhaltet die Zuordnung der Ressourcen, die dem Kanal vom Selektor zugewiesen wurden.

Ein Kanal kann nicht direkt abgemeldet werden. Stattdessen muss der Schlüssel, der die Registrierung darstellt, abgebrochen werden. Das Abbrechen eines Schlüssels fordert an, dass der Kanal während des nächsten Auswahlvorgangs des Selektors die Registrierung aufgehoben wird. Ein Schlüssel kann explizit abgebrochen werden, indem seine SelectionKey#cancel() cancel Methode aufgerufen wird. Alle Schlüssel eines Kanals werden implizit abgebrochen, wenn der Kanal geschlossen wird, sei es durch Aufrufen der Channel#close close Methode oder durch Unterbrechen eines threads, der in einem E/A-Vorgang auf dem Kanal blockiert wurde.

Wenn der Selektor selbst geschlossen ist, wird die Registrierung des Kanals aufgehoben, und der Schlüssel, der seine Registrierung darstellt, wird ohne weitere Verzögerung ungültig.

Ein Kanal kann höchstens einmal bei einem bestimmten Selektor registriert werden.

Ob ein Kanal bei einem oder mehreren Selektoren registriert ist, kann durch Aufrufen der #isRegistered isRegistered -Methode bestimmt werden.

Auswählbare Kanäle sind für die Verwendung durch mehrere gleichzeitige Threads sicher.

"bm"><h2>Blockiermodus</h2>

Ein auswählbarer Kanal befindet sich entweder im Blockierungsmodus oder im nicht blockierenden Modus. Im Blockierungsmodus wird jeder E/A-Vorgang, der für den Kanal aufgerufen wird, blockiert, bis er abgeschlossen ist. Im nicht blockierenden Modus wird ein E/A-Vorgang nie blockiert und kann weniger Bytes als angefordert oder möglicherweise gar keine Bytes übertragen. Der Blockierungsmodus eines auswählbaren Kanals kann durch Aufrufen seiner #isBlocking isBlocking Methode bestimmt werden.

Neu erstellte auswählbare Kanäle befinden sich immer im Blockierungsmodus. Der nicht blockierende Modus ist am nützlichsten in Verbindung mit selektorbasiertem Multiplexing. Ein Kanal muss in den nicht blockierenden Modus versetzt werden, bevor er bei einem Selektor registriert wird, und kann erst dann in den Blockiermodus zurückgesetzt werden, wenn er aufgehoben wurde.

In Version 1.4 hinzugefügt.

Java-Dokumentation für java.nio.channels.SelectableChannel.

Teile dieser Seite sind Änderungen, die auf Arbeiten basieren, die vom Android Open Source Project erstellt und freigegeben wurden und gemäß den In der Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

SelectableChannel()

Initialisiert eine neue Instanz dieser Klasse.

SelectableChannel(IntPtr, JniHandleOwnership)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Runtime aufgerufen.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Objectzurück.

(Geerbt von Object)
Handle

Das Handle zum zugrunde liegenden Android-instance.

(Geerbt von Object)
IsBlocking

Gibt an, ob sich dieser Kanal im Blockierungsmodus befindet.

IsOpen

Gibt true zurück, wenn dieser Kanal geöffnet ist.

(Geerbt von AbstractInterruptibleChannel)
IsRegistered

Gibt an, ob dieser Kanal bei mindestens einem Selektor registriert ist.

JniIdentityHashCode

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
JniPeerMembers

Ein Kanal, der über ein Selectormultiplexiert werden kann.

PeerReference

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

Methoden

Begin()

Markiert den Beginn eines E/A-Vorgangs, der möglicherweise auf unbestimmte Zeit blockiert wird.

(Geerbt von AbstractInterruptibleChannel)
BlockingLock()

Ruft das -Objekt ab, mit dem die #configureBlocking configureBlocking Methoden und #register register synchronisiert werden.

Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Close()

Schließt diesen Kanal.

(Geerbt von AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

Passt den Blockierungsmodus dieses Kanals an.

Dispose()

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
Dispose(Boolean)

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
End(Boolean)

Markiert das Ende eines E/A-Vorgangs, der möglicherweise auf unbestimmte Zeit blockiert wird.

(Geerbt von AbstractInterruptibleChannel)
Equals(Object)

Gibt an, ob ein anderes Objekt diesem "gleich" ist.

(Geerbt von Object)
GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
ImplCloseChannel()

Schließt diesen Kanal.

(Geerbt von AbstractInterruptibleChannel)
JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection feststellt, dass keine Verweise mehr auf das Objekt vorhanden sind.

(Geerbt von Object)
KeyFor(Selector)

Ruft den Schlüssel ab, der die Registrierung des Kanals beim angegebenen Selektor darstellt.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
Provider()

Gibt den Anbieter zurück, der diesen Kanal erstellt hat.

Register(Selector, Operations)

Registriert diesen Kanal beim angegebenen Selektor und gibt einen Auswahlschlüssel zurück.

Register(Selector, Operations, Object)

Registriert diesen Kanal beim angegebenen Selektor und gibt einen Auswahlschlüssel zurück.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
ToArray<T>()

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
ValidOps()

Gibt einen Vorgangssatz zurück, der die unterstützten Vorgänge dieses Kanals identifiziert.

Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel durch em benachrichtigen/em> oder <em>interrupted</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er aktiviert wird, in der Regel, indem <er>benachrichtigt</em> oder <em>interrupted</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
IJavaPeerable.Finalized()

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein Kanal, der über ein Selectormultiplexiert werden kann.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine Für Android-Runtime überprüfte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ein Kanal, der über ein Selectormultiplexiert werden kann.

GetJniTypeName(IJavaPeerable)

Ein Kanal, der über ein Selectormultiplexiert werden kann.

Gilt für: