Freigeben über


SelectableChannel Klasse

Definition

Ein Kanal, der über ein SelectorVielfaches multiplexed 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 SelectorVielfaches multiplexed werden kann.

Um mit einer Selektor verwendet werden zu können, muss zunächst eine Instanz 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 bei der Auswahl darstellt.

Nach der Registrierung bei einer Auswahl bleibt ein Kanal registriert, bis er registriert ist. Dies umfasst die Zuordnung der Ressourcen, die vom Selektor dem Kanal zugeordnet wurden.

Ein Kanal kann nicht direkt deregistert werden; Stattdessen muss der Schlüssel, der seine Registrierung darstellt, abgebrochen werden. Das Abbrechen einer Schlüsselanforderung, dass der Kanal während des nächsten Auswahlvorgangs des Selektors deregistert wird. Ein Schlüssel kann explizit abgebrochen werden, indem er seine SelectionKey#cancel() cancel Methode aufruft. Alle Schlüssel eines Kanals werden implizit abgebrochen, wenn der Kanal geschlossen wird, unabhängig davon, ob er seine Channel#close close Methode aufruft oder einen in einem E/A-Vorgang blockierten Thread auf dem Kanal unterbricht.

Wenn die Auswahl selbst geschlossen wird, wird der Kanal deregistert, und der Schlüssel, der seine Registrierung darstellt, wird ohne weitere Verzögerung ungültig.

Ein Kanal kann höchstens einmal bei einer bestimmten Auswahl registriert werden.

Gibt an, ob ein Kanal bei einer 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>Blockierungsmodus</h2>

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

Neu erstellte, auswählbare Kanäle befinden sich immer im Sperrmodus. Der Nicht-Blockierungsmodus ist in Verbindung mit selektorbasiertem Multiplexing am nützlichsten. Ein Kanal muss in den Nicht-Blockierungsmodus versetzt werden, bevor er bei einer Auswahl registriert wird und möglicherweise erst wieder in den Sperrmodus zurückgesetzt wird, nachdem er die Registrierung aufgehoben hat.

In 1.4 hinzugefügt.

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

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.

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 Laufzeit aufgerufen.

Eigenschaften

Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
IsBlocking

Gibt an, ob sich dieser Kanal im Sperrmodus befindet.

IsOpen

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

(Geerbt von AbstractInterruptibleChannel)
IsRegistered

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

JniIdentityHashCode

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
JniPeerMembers

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

PeerReference

Ein Kanal, der über ein SelectorVielfaches multiplexed 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 Anfang eines E/A-Vorgangs, der auf unbestimmte Zeit blockiert werden kann.

(Geerbt von AbstractInterruptibleChannel)
BlockingLock()

Ruft das Objekt ab, auf dem die und #register register die #configureBlocking configureBlocking Methoden 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 SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
Dispose(Boolean)

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
End(Boolean)

Markiert das Ende eines E/A-Vorgangs, der auf unbestimmte Zeit blockiert werden kann.

(Geerbt von AbstractInterruptibleChannel)
Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt 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 bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind.

(Geerbt von Object)
KeyFor(Selector)

Ruft den Schlüssel ab, der die Registrierung des Kanals bei der angegebenen Auswahl 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 mit der angegebenen Auswahl, wobei eine Auswahltaste zurückgegeben wird.

Register(Selector, Operations, Object)

Registriert diesen Kanal mit der angegebenen Auswahl, wobei eine Auswahltaste zurückgegeben wird.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
ToArray<T>()

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnregisterFromRuntime()

Ein Kanal, der über ein SelectorVielfaches multiplexed 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 wach ist, in der Regel durch em benachrichtigt/em> oder <em>unterbrochen</em>.<><

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IJavaPeerable.Disposed()

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
IJavaPeerable.Finalized()

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

(Geerbt von Object)

Erweiterungsmethoden

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

GetJniTypeName(IJavaPeerable)

Ein Kanal, der über ein SelectorVielfaches multiplexed werden kann.

Gilt für: