IAsynchronousChannel Интерфейс

Определение

Канал, поддерживающий асинхронные операции ввода-вывода.

[Android.Runtime.Register("java/nio/channels/AsynchronousChannel", "", "Java.Nio.Channels.IAsynchronousChannelInvoker", ApiSince=26)]
public interface IAsynchronousChannel : IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IChannel
[<Android.Runtime.Register("java/nio/channels/AsynchronousChannel", "", "Java.Nio.Channels.IAsynchronousChannelInvoker", ApiSince=26)>]
type IAsynchronousChannel = interface
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Производный
Атрибуты
Реализации

Комментарии

Канал, поддерживающий асинхронные операции ввода-вывода. Асинхронные операции ввода-вывода обычно принимают одну из двух форм:

<ol><li>

{@link Future}&lt;V&gt; <em>operation</em>(<em>...</em>)

</li><li li>

void <em>operation</em>(<em>...</em> A attachment, {@link
              CompletionHandler}&lt;V,? super A&gt; handler)

</li></ol>

где операция — это имя операции ввода-вывода (например, чтения или записи), V — тип результата операции ввода-вывода, а A — тип объекта, присоединенного к операции ввода-вывода для предоставления контекста при использовании результата. Вложение важно в тех случаях, когда <для использования результатов многих операций ввода-вывода используется состояние без>><CompletionHandler em.

В первой форме методы, определенные интерфейсомFuture Future, можно использовать для проверка завершения операции, ожидания ее завершения и получения результата. Во второй форме вызывается для CompletionHandler использования результата операции ввода-вывода при завершении или сбое.

Канал, реализующий этот интерфейс, является <>асинхронно закрываемым</em>: если операция ввода-вывода в канале не выполнена #close close и вызывается метод канала, операция ввода-вывода завершается сбоем с исключением AsynchronousCloseException.

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

<h2>Отмена</h2>

Интерфейс Future определяет метод для отмены Future#cancel cancel выполнения. Это приводит к тому, что все потоки, ожидающие результата операции ввода-вывода, вызывают исключение java.util.concurrent.CancellationException. Возможность отмены базовой операции ввода-вывода зависит от реализации и поэтому не указана. Если отмена оставляет канал или сущность, к которой он подключен, в несогласованном состоянии, канал помещается в конкретное <для реализации состояние< ошибки/>em>, которое предотвращает дальнейшие попытки инициировать операции ввода-вывода, аналогичные отмененной операции. Например, если операция чтения отменена, но реализация не может гарантировать, что байты не были считаны из канала, то канал переводится в состояние ошибки; дальнейшие попытки инициировать read операцию приводят к возникновению неуказанным исключением среды выполнения. Аналогичным образом, если операция записи отменена, но реализация не может гарантировать, что байты не были записаны в канал, последующие попытки инициировать завершится ошибкой write с неуказанным исключением среды выполнения.

Future#cancel cancel Если метод вызывается с параметром , для которого mayInterruptIfRunning задано значение true , операция ввода-вывода может быть прервана путем закрытия канала. В этом случае все потоки, ожидающие результата операции ввода-вывода, вызывают исключение CancellationException , а все другие операции ввода-вывода, невыполненные в канале, завершают с исключением AsynchronousCloseException.

cancel Если метод вызывается для отмены операций чтения или записи, рекомендуется отменить все буферы, используемые в операциях ввода-вывода, или обеспечить отсутствие доступа к буферам, пока канал остается открытым.

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

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

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

Свойства

Handle

Возвращает значение JNI базового объекта Android.

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

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

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

Возвращает значение java.lang.System.identityHashCode() для упаковаемого экземпляра.

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

Состояние управляемого однорангового узла.

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

Поддержка доступа к членам и вызова.

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

Возвращает экземпляр JniObjectReference объекта Java, заключенный в оболочку.

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

Методы

Close()

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

Disposed()

Вызывается при удалении экземпляра.

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

Если отсутствуют невыполненные ссылки на этот экземпляр, вызывает метод Dispose(); в противном случае ничего не делает.

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

Вызывается при завершении работы экземпляра.

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

Задайте значение, возвращаемое .JniIdentityHashCode

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

Канал, поддерживающий асинхронные операции ввода-вывода.

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

Задайте значение, возвращаемое .PeerReference

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

Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала его из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов.

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

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Канал, поддерживающий асинхронные операции ввода-вывода.

GetJniTypeName(IJavaPeerable)

Канал, поддерживающий асинхронные операции ввода-вывода.

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