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 |
Возвращает класс среды выполнения данного объекта |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsBlocking |
Указывает, находится ли этот канал в режиме блокировки. |
IsOpen |
Возвращает значение true, если этот канал открыт. (Унаследовано от AbstractInterruptibleChannel) |
IsRegistered |
Указывает, зарегистрирован ли этот канал хотя бы одним селектором. |
JniIdentityHashCode |
Канал, который можно мультиплексировать через |
JniPeerMembers |
Канал, который можно мультиплексировать через |
PeerReference |
Канал, который можно мультиплексировать через |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Begin() |
Отмечает начало операции ввода-вывода, которая может блокироваться на неопределенный срок. (Унаследовано от AbstractInterruptibleChannel) |
BlockingLock() |
Извлекает объект, с которым синхронизируются |
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Close() |
Закрывает этот канал. (Унаследовано от AbstractInterruptibleChannel) |
ConfigureBlocking(Boolean) |
Настраивает режим блокировки этого канала. |
Dispose() |
Канал, который можно мультиплексировать через |
Dispose(Boolean) |
Канал, который можно мультиплексировать через |
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>() |
Канал, который можно мультиплексировать через |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Канал, который можно мультиплексировать через |
ValidOps() |
Возвращает набор операций, определяющий поддерживаемые операции этого канала. |
Wait() |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.>< (Унаследовано от Object) |
Wait(Int64) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Канал, который можно мультиплексировать через |
IJavaPeerable.DisposeUnlessReferenced() |
Канал, который можно мультиплексировать через |
IJavaPeerable.Finalized() |
Канал, который можно мультиплексировать через |
IJavaPeerable.JniManagedPeerState |
Канал, который можно мультиплексировать через |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Канал, который можно мультиплексировать через |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Канал, который можно мультиплексировать через |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Канал, который можно мультиплексировать через |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверенного средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Канал, который можно мультиплексировать через |
GetJniTypeName(IJavaPeerable) |
Канал, который можно мультиплексировать через |