IAsynchronousChannel インターフェイス

定義

非同期 I/O 操作をサポートするチャネル。

[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
派生
属性
実装

注釈

非同期 I/O 操作をサポートするチャネル。 非同期 I/O 操作は、通常、次の 2 つの形式のいずれかを使用します。

<ol><li>

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

</li li><>

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

</li></ol>

ここで、operation は I/O 操作の名前 (読み取りまたは書き込みなど)、V は I/O 操作の結果の種類、A は結果を使用するときにコンテキストを提供するために I/O 操作にアタッチされたオブジェクトの型です。 添付ファイルは、多くの I/O 操作の結果を <使用するために em>state-less</em>CompletionHandler が使用される場合に重要です。

最初の形式では、インターフェイスによって定義されたメソッドをFuture Future使用して、操作が完了した場合にチェックし、完了を待ち、結果を取得できます。 2 番目の形式では、 CompletionHandler が呼び出され、I/O 操作が完了または失敗したときに I/O 操作の結果が使用されます。

このインターフェイスを実装するチャネルは<>、非同期的に closeable</em> です。チャネルで I/O 操作が未処理で、チャネルの#close closeメソッドが呼び出された場合、I/O 操作は例外 AsynchronousCloseExceptionで失敗します。

非同期チャネルは、複数の同時実行スレッドで使用しても安全です。 一部のチャネル実装では、同時読み取りと書き込みをサポートできますが、特定の時点で複数の読み取りと 1 つの書き込み操作を未処理にすることはできません。

<h2>Cancellation</h2>

インターフェイスは Future 、実行を Future#cancel cancel 取り消すメソッドを定義します。 これにより、I/O 操作の結果で待機しているすべてのスレッドが をスロー java.util.concurrent.CancellationExceptionします。 基になる I/O 操作を取り消すことができるかどうかは、高度な実装固有であるため、指定されていません。 取り消しによってチャネルまたは接続先のエンティティが不整合な状態のままになる場合、チャネルは実装固有 <の em>エラー状態</em> に配置され、取り消された操作と 同様 の I/O 操作の開始をさらに試行できなくなります。 たとえば、読み取り操作が取り消されても、実装でチャネルからバイトが読み取られないことを保証できない場合、チャネルはエラー状態になります。さらに操作を開始しようとすると、 read 指定されていないランタイム例外がスローされます。 同様に、書き込み操作が取り消されても、実装でバイトがチャネルに書き込まれていないことを保証できない場合、後続の の開始 write の試行は、指定されていないランタイム例外で失敗します。

パラメーターを Future#cancel canceltrue設定して メソッドをmayInterruptIfRunning呼び出した場合、チャネルを閉じることによって I/O 操作が中断される可能性があります。 その場合、I/O 操作の結果で待機しているすべてのスレッドが スロー CancellationException され、チャネルで未処理のその他の I/O 操作が例外 AsynchronousCloseExceptionで完了します。

cancel読み取り操作または書き込み操作を取り消すために メソッドを呼び出す場合は、チャネルが開いたままバッファーにアクセスしないように、I/O 操作で使用されるすべてのバッファーを破棄するか、注意を払うことをお勧めします。

1.7 で追加されました。

の Java ドキュメント java.nio.channels.AsynchronousChannel

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 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)

非同期 I/O 操作をサポートするチャネル。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

によって返される値を PeerReference設定します。

(継承元 IJavaPeerable)
UnregisterFromRuntime()

ランタイムが将来 Java.Interop.JniRuntime+JniValueManager.PeekValue の呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

非同期 I/O 操作をサポートするチャネル。

GetJniTypeName(IJavaPeerable)

非同期 I/O 操作をサポートするチャネル。

適用対象