Condividi tramite


SelectableChannel Classe

Definizione

Canale che può essere multiplexato tramite un Selectoroggetto .

[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 Selectoroggetto .

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 Objectoggetto .

(Ereditato da Object)
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 Selectoroggetto .

(Ereditato da Object)
JniPeerMembers

Canale che può essere multiplexato tramite un Selectoroggetto .

PeerReference

Canale che può essere multiplexato tramite un Selectoroggetto .

(Ereditato da Object)
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 #configureBlocking configureBlocking metodi e #register register vengono sincronizzati.

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 Selectoroggetto .

(Ereditato da Object)
Dispose(Boolean)

Canale che può essere multiplexato tramite un Selectoroggetto .

(Ereditato da Object)
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 Selectoroggetto .

(Ereditato da Object)
ToString()

Restituisce una rappresentazione in formato stringa dell'oggetto.

(Ereditato da Object)
UnregisterFromRuntime()

Canale che può essere multiplexato tramite un Selectoroggetto .

(Ereditato da Object)
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 Selectoroggetto .

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Canale che può essere multiplexato tramite un Selectoroggetto .

(Ereditato da Object)
IJavaPeerable.Finalized()

Canale che può essere multiplexato tramite un Selectoroggetto .

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Canale che può essere multiplexato tramite un Selectoroggetto .

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Canale che può essere multiplexato tramite un Selectoroggetto .

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Canale che può essere multiplexato tramite un Selectoroggetto .

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Canale che può essere multiplexato tramite un Selectoroggetto .

(Ereditato da Object)

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 Selectoroggetto .

GetJniTypeName(IJavaPeerable)

Canale che può essere multiplexato tramite un Selectoroggetto .

Si applica a