次の方法で共有


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>

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

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

このインターフェイスを実装するチャネルは<>非同期的に 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 操作を取り消すことができるかどうかは、実装固有であるため、指定されていません。 取り消しがチャネルまたは接続先のエンティティから不整合な状態で残された場合、チャネルは実装固有<のエラー>状態<に>置かれます。これにより、取り消された操作と同様の I/O 操作をさらに開始できなくなります。 たとえば、読み取り操作が取り消されても、実装がチャネルからバイトが読み取られないことを保証できない場合、チャネルはエラー状態になります。さらに操作を開始しようとすると、 read 指定されていないランタイム例外がスローされます。 同様に、書き込み操作が取り消されたが、実装がチャネルにバイトが書き込まれていないことを保証できない場合、後続の試行では write 、ランタイム例外が指定されていない状態で失敗します。

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

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

1.7 で追加されました。

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

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

プロパティ

Handle

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

(継承元 IJavaObject)
IsOpen

このチャネルが開いている場合は true を返します。

(継承元 IChannel)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() 値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされた Java オブジェクト インスタンスの a JniObjectReference を返します。

(継承元 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 操作をサポートするチャネル。

適用対象