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
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Свойства
Handle |
Возвращает значение JNI базового объекта Android. (Унаследовано от IJavaObject) |
IsOpen |
Возвращает значение true, если этот канал открыт. (Унаследовано от IChannel) |
JniIdentityHashCode |
Возвращает значение |
JniManagedPeerState |
Состояние управляемого однорангового узла. (Унаследовано от 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) |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Канал, поддерживающий асинхронные операции ввода-вывода. |
GetJniTypeName(IJavaPeerable) |
Канал, поддерживающий асинхронные операции ввода-вывода. |