Язык

SelectableChannel Класс

Определение

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

[Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)]
public abstract class SelectableChannel : Java.Nio.Channels.Spi.AbstractInterruptibleChannel, IDisposable
[<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.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

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

Имя. Описание
SelectableChannel()

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

SelectableChannel(IntPtr, JniHandleOwnership)

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

Свойства

Имя. Описание
Class

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

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

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

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

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

IsOpen

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

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

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

JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

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

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

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

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

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

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

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

ThresholdType

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

Методы

Имя. Описание
Begin()

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

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

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

Clone()

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

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

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

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

Изменяет режим блокировки этого канала.

Construct(JniObjectReference, JniObjectReferenceOptions)

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

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

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

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

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

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

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

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

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

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

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

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

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

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

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

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

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

(Унаследовано от AbstractInterruptibleChannel)
JavaFinalize()
Устаревшие.

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

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

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

Notify()

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

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

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

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

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

Register(Selector, Operations, Object)

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

Register(Selector, Operations)

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

SetHandle(IntPtr, JniHandleOwnership)

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

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

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

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

Создает управляемый массив из этого Java оболочки массива.

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

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

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

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

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

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

Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

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

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

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

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

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

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

Имя. Описание
IJavaPeerable.Disposed()

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

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

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

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

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

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

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

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

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

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

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

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

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

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

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

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