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}<V> <em>operation</em>(<em>...</em>)
</li li><>
void <em>operation</em>(<em>...</em> A attachment, {@link
CompletionHandler}<V,? super A> handler)
</li></ol>
где операция — это имя операции ввода-вывода (например, чтение или запись), V — это тип операции ввода-вывода, а тип объекта, присоединенного к операции ввода-вывода, для предоставления контекста при использовании результата. Вложение важно для случаев, когда <>эм-состояние меньше</em>CompletionHandler используется для использования результата многих операций ввода-вывода.
В первой форме методы, определенные Future Future интерфейсом, могут использоваться для проверки завершения операции, ожидания его завершения и получения результата. Во второй форме CompletionHandler вызывается для использования результата операции ввода-вывода при завершении или сбое.
Канал, реализующий этот интерфейс, является <>асинхронно закрываемым</em>: если операция ввода-вывода не выполняется в канале, а метод канала #close close вызывается, операция ввода-вывода завершается с исключениемAsynchronousCloseException.
Асинхронные каналы безопасны для использования несколькими параллельными потоками. Некоторые реализации каналов могут поддерживать параллельное чтение и запись, но могут не разрешать выполнение нескольких операций чтения и одной операции записи в любое время.
<h2 Отмена>/h2<>
Интерфейс Future определяет Future#cancel cancel метод для отмены выполнения. Это приводит ко java.util.concurrent.CancellationExceptionвсем потокам, ожидающих результата операции ввода-вывода. Может ли базовая операция ввода-вывода быть отменена с высокой степенью реализации и поэтому не указана. Если отмена покидает канал или сущность, к которой она подключена, в несогласованном состоянии, канал помещается в конкретное <>состояние< ошибки em реализации или em>, который предотвращает дальнейшие попытки инициировать операции ввода-вывода, аналогичные операции, отмененной операции. Например, если операция чтения отменена, но реализация не может гарантировать, что байты не считывались из канала, то он помещает канал в состояние ошибки; Дальнейшие попытки инициировать read операцию приводят к возникновению непреднаказаемого исключения среды выполнения. Аналогичным образом, если операция записи отменена, но реализация не может гарантировать, что байты не были записаны в канал, то последующие попытки инициировать write ошибку с непредвидимым исключением среды выполнения.
Future#cancel cancel Если метод вызывается с mayInterruptIfRunning заданным параметромtrue, то операция ввода-вывода может быть прервана путем закрытия канала. В этом случае все потоки, ожидающие результата операции ввода-вывода CancellationException , и любые другие операции ввода-вывода, выдающиеся в канале, завершены с исключением AsynchronousCloseException.
cancel Если метод вызывается для отмены операций чтения или записи, рекомендуется удалить все буферы, используемые в операциях ввода-вывода, или обеспечить, чтобы буферы не были доступны, пока канал остается открытым.
Добавлено в версии 1.7.
Java документации по java.nio.channels.AsynchronousChannel.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Свойства
| Имя. | Описание |
|---|---|
| Handle |
Возвращает значение JNI базового объекта Android. (Унаследовано от IJavaObject) |
| IsOpen |
Возвращает значение true, если этот канал открыт. (Унаследовано от IChannel) |
| JniIdentityHashCode |
Возвращает значение |
| JniManagedPeerState |
Состояние управляемого однорангового узла. (Унаследовано от IJavaPeerable) |
| JniObjectReferenceControlBlock |
Канал, поддерживающий асинхронные операции ввода-вывода. (Унаследовано от IJavaPeerable) |
| JniPeerMembers |
Поддержка доступа к членам и вызовов. (Унаследовано от IJavaPeerable) |
| PeerReference |
JniObjectReference Возвращает экземпляр объекта в оболочке Java. (Унаследовано от IJavaPeerable) |
Методы
| Имя. | Описание |
|---|---|
| Close() |
Закрывает этот канал. |
| Disposed() |
Вызывается при удалении экземпляра. (Унаследовано от IJavaPeerable) |
| DisposeUnlessReferenced() |
Если нет невыполненных ссылок на этот экземпляр, то вызывается |
| Finalized() |
Вызывается при завершении экземпляра. (Унаследовано от IJavaPeerable) |
| SetJniIdentityHashCode(Int32) |
Задайте значение, возвращаемое |
| SetJniManagedPeerState(JniManagedPeerStates) |
Канал, поддерживающий асинхронные операции ввода-вывода. (Унаследовано от IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Задайте значение, возвращаемое |
| UnregisterFromRuntime() |
Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов. (Унаследовано от IJavaPeerable) |
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Канал, поддерживающий асинхронные операции ввода-вывода. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |