SelectableChannel Класс

Определение

Канал, который можно мультиплексировать через Selector.

[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
Наследование
Производный
Атрибуты
Реализации

Комментарии

Канал, который можно мультиплексировать через Selector.

Чтобы использовать с селектором, экземпляр этого класса необходимо сначала зарегистрировать с помощью #register(Selector,int,Object) register метода . Этот метод возвращает новый SelectionKey объект, представляющий регистрацию канала с помощью селектора.

После регистрации с помощью селектора канал остается зарегистрированным до его отмены. Это включает освобождение всех ресурсов, выделенных для канала селектором.

Невозможно отменить регистрацию канала напрямую; Вместо этого необходимо отменить ключ, представляющий его регистрацию. Отмена ключа требует отмены регистрации канала во время следующей операции выбора селектора. Ключ можно отменить явным образом, вызвав его SelectionKey#cancel() cancel метод . Все ключи канала неявно отменяются при закрытии канала путем вызова его Channel#close close метода или прерывания потока, заблокированного операцией ввода-вывода в канале.

Если сам селектор закрыт, то канал будет отменен, а ключ, представляющий его регистрацию, будет признан недействительным без дальнейших задержек.

Канал может быть зарегистрирован не более одного раза с помощью любого конкретного селектора.

Указывает, зарегистрирован ли канал с помощью одного или нескольких селекторов, можно определить, #isRegistered isRegistered вызвав метод .

Доступные для выбора каналы безопасны для использования несколькими параллельными потоками.

Режим блокировки< "bm"><h2>/h2>

Канал, доступный для выбора, находится либо в режиме блокировки , либо в режиме без блокировки . В режиме блокировки каждая операция ввода-вывода, вызываемая в канале, будет блокироваться до ее завершения. В режиме без блокировки операция ввода-вывода никогда не будет блокироваться и может передавать меньше байтов, чем было запрошено, или, возможно, вообще без байтов. Режим блокировки выбираемого канала можно определить путем вызова его #isBlocking isBlocking метода .

Вновь созданные каналы с возможностью выбора всегда находятся в режиме блокировки. Неблокирующий режим наиболее полезен в сочетании с мультиплексированием на основе селектора. Канал должен быть переведен в неблокирующий режим перед регистрацию с помощью селектора и не может быть возвращен в режим блокировки, пока он не будет отменен.

Добавлено в версии 1.4.

Документация по Java для java.nio.channels.SelectableChannel.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Конструкторы

SelectableChannel()

Инициализирует новый экземпляр этого класса.

SelectableChannel(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsBlocking

Указывает, находится ли этот канал в режиме блокировки.

IsOpen

Возвращает значение true, если этот канал открыт.

(Унаследовано от AbstractInterruptibleChannel)
IsRegistered

Указывает, зарегистрирован ли этот канал хотя бы одним селектором.

JniIdentityHashCode

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
JniPeerMembers

Канал, который можно мультиплексировать через Selector.

PeerReference

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Begin()

Отмечает начало операции ввода-вывода, которая может блокироваться на неопределенный срок.

(Унаследовано от AbstractInterruptibleChannel)
BlockingLock()

Извлекает объект, с которым синхронизируются #configureBlocking configureBlocking методы и #register register .

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Close()

Закрывает этот канал.

(Унаследовано от AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

Настраивает режим блокировки этого канала.

Dispose()

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
Dispose(Boolean)

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
End(Boolean)

Отмечает конец операции ввода-вывода, которая может блокироваться на неопределенный срок.

(Унаследовано от AbstractInterruptibleChannel)
Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
ImplCloseChannel()

Закрывает этот канал.

(Унаследовано от AbstractInterruptibleChannel)
JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
KeyFor(Selector)

Извлекает ключ, представляющий регистрацию канала с помощью заданного селектора.

Notify()

Пробуждает один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Пробуждает все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
Provider()

Возвращает поставщика, создавшего этот канал.

Register(Selector, Operations)

Регистрирует этот канал с помощью заданного селектора, возвращая ключ выбора.

Register(Selector, Operations, Object)

Регистрирует этот канал с помощью заданного селектора, возвращая ключ выбора.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
ToArray<T>()

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
ValidOps()

Возвращает набор операций, определяющий поддерживаемые операции этого канала.

Wait()

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

(Унаследовано от Object)
Wait(Int64)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Канал, который можно мультиплексировать через Selector.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенного средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Канал, который можно мультиплексировать через Selector.

GetJniTypeName(IJavaPeerable)

Канал, который можно мультиплексировать через Selector.

Применяется к