SelectableChannel Klasse
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.
Ein Kanal, der über ein Selector
multiplexiert 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 Selector
multiplexiert 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 |
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 |
JniPeerMembers |
Ein Kanal, der über ein |
PeerReference |
Ein Kanal, der über ein |
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 |
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 |
Dispose(Boolean) |
Ein Kanal, der über ein |
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 |
ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
UnregisterFromRuntime() |
Ein Kanal, der über ein |
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 |
IJavaPeerable.DisposeUnlessReferenced() |
Ein Kanal, der über ein |
IJavaPeerable.Finalized() |
Ein Kanal, der über ein |
IJavaPeerable.JniManagedPeerState |
Ein Kanal, der über ein |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Ein Kanal, der über ein |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Ein Kanal, der über ein |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Ein Kanal, der über ein |
Erweiterungsmethoden
JavaCast<TResult>(IJavaObject) |
Führt eine Für Android-Runtime überprüfte Typkonvertierung aus. |
JavaCast<TResult>(IJavaObject) |
Ein Kanal, der über ein |
GetJniTypeName(IJavaPeerable) |
Ein Kanal, der über ein |