言語

SelectableChannel クラス

定義

Selectorを介して多重化できるチャネル。

[Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)]
public abstract class SelectableChannel : Java.Nio.Channels.Spi.AbstractInterruptibleChannel, IDisposable
[<Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)>]
type SelectableChannel = class
    inherit AbstractInterruptibleChannel
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
継承
派生
属性
実装

注釈

Selectorを介して多重化できるチャネル。

セレクターで使用するには、このクラスのインスタンスを最初に メソッドを使用して#register(Selector,int,Object) registerする必要があります。 このメソッドは、セレクターに対するチャネルの登録を表す新しい SelectionKey オブジェクトを返します。

セレクターに登録されると、チャネルは登録解除されるまで登録 されたままになります。 これには、セレクターによってチャネルに割り当てられたリソースの割り当てを解除する必要があります。

チャネルを直接登録解除することはできません。代わりに、登録を表すキーを 取り消す必要があります。 セレクターの次の選択操作中にチャネルの登録を解除するキー要求を取り消す。 キーは、 SelectionKey#cancel() cancel メソッドを呼び出すことによって明示的に取り消される場合があります。 チャネルのキーはすべて、チャネルが閉じられたときに暗黙的に取り消されます。 Channel#close close メソッドを呼び出すか、チャネルの I/O 操作でブロックされたスレッドを中断します。

セレクター自体が閉じられている場合、チャネルは登録解除され、登録を表すキーは、それ以上の遅延なしに無効になります。

チャネルは、特定のセレクターに最大で 1 回登録できます。

チャネルが 1 つ以上のセレクターに登録されているかどうかは、 #isRegistered isRegistered メソッドを呼び出すことによって決定できます。

選択可能なチャネルは、複数の同時実行スレッドで安全に使用できます。

"bm"><h2>ブロック モード</h2>

選択可能なチャネルは、 ブロッキング モードまたは 非ブロッキング モードです。 ブロッキング モードでは、チャネルに対して呼び出されるすべての I/O 操作は、完了するまでブロックされます。 非ブロッキング モードでは、I/O 操作は決してブロックせず、要求されたバイト数よりも少ないバイト数を転送するか、バイトをまったく転送しない可能性があります。 選択可能なチャネルのブロック モードは、その #isBlocking isBlocking メソッドを呼び出すことによって決定できます。

新しく作成された選択可能なチャネルは、常にブロック モードになります。 非ブロッキング モードは、セレクター ベースの多重化と組み合わせて最も便利です。 セレクターに登録する前にチャネルを非ブロッキング モードにする必要があり、登録が解除されるまでブロック モードに戻らない場合があります。

1.4 で追加されました。

Javaドキュメント。

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

コンストラクター

名前 説明
SelectableChannel()

このクラスの新しいインスタンスを初期化します。

SelectableChannel(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
IsBlocking

このチャネルがブロック モードであるかどうかを示します。

IsOpen

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

(継承元 AbstractInterruptibleChannel)
IsRegistered

このチャネルが少なくとも 1 つのセレクターに登録されているかどうかを示します。

JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
JniPeerMembers

Selectorを介して多重化できるチャネル。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
Begin()

無期限にブロックする可能性がある I/O 操作の開始をマークします。

(継承元 AbstractInterruptibleChannel)
BlockingLock()

#configureBlocking configureBlockingメソッドと #register register メソッドの同期に使用するオブジェクトを取得します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Close()

このチャネルを閉じます。

(継承元 AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

このチャネルのブロッキング モードを調整します。

Construct(JniObjectReference, JniObjectReferenceOptions)

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
End(Boolean)

無期限にブロックする可能性がある I/O 操作の終了をマークします。

(継承元 AbstractInterruptibleChannel)
Equals(Object)

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
ImplCloseChannel()

このチャネルを閉じます。

(継承元 AbstractInterruptibleChannel)
JavaFinalize()
古い.

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
KeyFor(Selector)

指定されたセレクターに対するチャネルの登録を表すキーを取得します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Provider()

このチャネルを作成したプロバイダーを返します。

Register(Selector, Operations, Object)

このチャネルを指定されたセレクターに登録し、選択キーを返します。

Register(Selector, Operations)

このチャネルを指定されたセレクターに登録し、選択キーを返します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
ValidOps()

このチャネルでサポートされている操作を識別する操作セットを返します。

Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
IJavaPeerable.Finalized()

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Selectorを介して多重化できるチャネル。

(継承元 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Selectorを介して多重化できるチャネル。

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Selectorを介して多重化できるチャネル。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象