SelectableChannel Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Canale che può essere multiplexato tramite un Selector
oggetto .
[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
- Ereditarietà
- Derivato
- Attributi
- Implementazioni
Commenti
Canale che può essere multiplexato tramite un Selector
oggetto .
Per essere usato con un selettore, è necessario registrare prima un'istanza di questa classe tramite il #register(Selector,int,Object) register
metodo . Questo metodo restituisce un nuovo SelectionKey
oggetto che rappresenta la registrazione del canale con il selettore.
Una volta registrato con un selettore, un canale rimane registrato fino a quando non viene annullata la registrazione. Ciò comporta la deallocazione di qualsiasi risorsa allocata al canale dal selettore.
Non è possibile annullare la registrazione diretta di un canale; la chiave che rappresenta la registrazione deve essere annullata. Annullamento di una richiesta di chiave che il canale venga deregisterato durante l'operazione di selezione successiva del selettore. Una chiave può essere annullata in modo esplicito richiamando il SelectionKey#cancel() cancel
relativo metodo. Tutte le chiavi di un canale vengono annullate in modo implicito quando il canale viene chiuso, se Channel#close close
richiamando il metodo o interrompendo un thread bloccato in un'operazione di I/O nel canale.
Se il selettore stesso viene chiuso, il canale verrà deregisterato e la chiave che rappresenta la registrazione verrà invalidata, senza ulteriore ritardo.
Un canale può essere registrato al massimo con qualsiasi selettore specifico.
Se un canale è registrato con uno o più selettori può essere determinato richiamando il #isRegistered isRegistered
metodo.
I canali selezionabili sono sicuri per l'uso da più thread simultanei.
"bm"><h2 Modalità< di blocco/h2>>
Un canale selezionabile è in modalità di blocco o in modalità non bloccabile . In modalità di blocco, ogni operazione di I/O richiamata al canale bloccherà fino al completamento. In modalità non bloccante un'operazione di I/O non blocca mai e può trasferire meno byte di quanto richiesto o eventualmente nessun byte. La modalità di blocco di un canale selezionabile può essere determinata richiamando il #isBlocking isBlocking
relativo metodo.
I canali selezionabili appena creati sono sempre in modalità di blocco. La modalità non bloccante è più utile insieme al multiplexing basato su selettore. Un canale deve essere inserito in modalità non bloccante prima di essere registrato con un selettore e potrebbe non essere restituito alla modalità di blocco fino a quando non viene annullata la registrazione.
Aggiunta nella versione 1.4.
Documentazione Java per java.nio.channels.SelectableChannel
.
Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .
Costruttori
SelectableChannel() |
Inizializza una nuova istanza della classe. |
SelectableChannel(IntPtr, JniHandleOwnership) |
Costruttore usato durante la creazione di rappresentazioni gestite di oggetti JNI; chiamato dal runtime. |
Proprietà
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle all'istanza di Android sottostante. (Ereditato da Object) |
IsBlocking |
Indica se questo canale è in modalità di blocco. |
IsOpen |
Restituisce true se questo canale è aperto. (Ereditato da AbstractInterruptibleChannel) |
IsRegistered |
Indica se questo canale è registrato con almeno un selettore. |
JniIdentityHashCode |
Canale che può essere multiplexato tramite un |
JniPeerMembers |
Canale che può essere multiplexato tramite un |
PeerReference |
Canale che può essere multiplexato tramite un |
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. |
Metodi
Begin() |
Contrassegna l'inizio di un'operazione di I/O che potrebbe bloccare in modo indefinito. (Ereditato da AbstractInterruptibleChannel) |
BlockingLock() |
Recupera l'oggetto in base al quale i |
Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
Close() |
Chiude questo canale. (Ereditato da AbstractInterruptibleChannel) |
ConfigureBlocking(Boolean) |
Regola la modalità di blocco del canale. |
Dispose() |
Canale che può essere multiplexato tramite un |
Dispose(Boolean) |
Canale che può essere multiplexato tramite un |
End(Boolean) |
Contrassegna la fine di un'operazione di I/O che potrebbe bloccare in modo indefinito. (Ereditato da AbstractInterruptibleChannel) |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
ImplCloseChannel() |
Chiude questo canale. (Ereditato da AbstractInterruptibleChannel) |
JavaFinalize() |
Chiamato dal Garbage Collector in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto. (Ereditato da Object) |
KeyFor(Selector) |
Recupera la chiave che rappresenta la registrazione del canale con il selettore specificato. |
Notify() |
Riattiva un singolo thread in attesa del monitoraggio dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitoraggio dell'oggetto. (Ereditato da Object) |
Provider() |
Restituisce il provider che ha creato questo canale. |
Register(Selector, Operations) |
Registra questo canale con il selettore specificato, restituendo una chiave di selezione. |
Register(Selector, Operations, Object) |
Registra questo canale con il selettore specificato, restituendo una chiave di selezione. |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
ToArray<T>() |
Canale che può essere multiplexato tramite un |
ToString() |
Restituisce una rappresentazione in formato stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
Canale che può essere multiplexato tramite un |
ValidOps() |
Restituisce un set di operazioni che identifica le operazioni supportate del canale. |
Wait() |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.< (Ereditato da Object) |
Wait(Int64) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale. (Ereditato da Object) |
Wait(Int64, Int32) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IJavaPeerable.Disposed() |
Canale che può essere multiplexato tramite un |
IJavaPeerable.DisposeUnlessReferenced() |
Canale che può essere multiplexato tramite un |
IJavaPeerable.Finalized() |
Canale che può essere multiplexato tramite un |
IJavaPeerable.JniManagedPeerState |
Canale che può essere multiplexato tramite un |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Canale che può essere multiplexato tramite un |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Canale che può essere multiplexato tramite un |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Canale che può essere multiplexato tramite un |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione dei tipi controllati dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Canale che può essere multiplexato tramite un |
GetJniTypeName(IJavaPeerable) |
Canale che può essere multiplexato tramite un |