SelectableChannel クラス

定義

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

[Android.Runtime.Register("java/nio/channels/SelectableChannel", DoNotGenerateAcw=true)]
public abstract class SelectableChannel : Java.Nio.Channels.Spi.AbstractInterruptibleChannel, IDisposable, Java.Interop.IJavaPeerable
[<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 メソッドを呼び出すことによって明示的に取り消される場合があります。 チャネルのメソッドを呼び出すか、チャネルの I/O 操作でブロックされたスレッドを Channel#close close 中断するかに関係なく、チャネルが閉じられると、チャネルのすべてのキーが暗黙的に取り消されます。

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

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

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

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

"bm"><h2>ブロッキング モード</h2>

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

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

1.4 で追加されました。

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

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

コンストラクター

SelectableChannel()

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

SelectableChannel(IntPtr, JniHandleOwnership)

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

プロパティ

Class

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

(継承元 Object)
Handle

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

(継承元 Object)
IsBlocking

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

IsOpen

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

(継承元 AbstractInterruptibleChannel)
IsRegistered

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

JniIdentityHashCode

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

(継承元 Object)
JniPeerMembers

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

PeerReference

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

(継承元 Object)
ThresholdClass

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

ThresholdType

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

メソッド

Begin()

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

(継承元 AbstractInterruptibleChannel)
BlockingLock()

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

Clone()

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

(継承元 Object)
Close()

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

(継承元 AbstractInterruptibleChannel)
ConfigureBlocking(Boolean)

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

Dispose()

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

(継承元 Object)
Dispose(Boolean)

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

(継承元 Object)
End(Boolean)

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

(継承元 AbstractInterruptibleChannel)
Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
ImplCloseChannel()

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

(継承元 AbstractInterruptibleChannel)
JavaFinalize()

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

(継承元 Object)
KeyFor(Selector)

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

Notify()

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

(継承元 Object)
NotifyAll()

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

(継承元 Object)
Provider()

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

Register(Selector, Operations)

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

Register(Selector, Operations, Object)

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

SetHandle(IntPtr, JniHandleOwnership)

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

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

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

(継承元 Object)
ToString()

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

(継承元 Object)
UnregisterFromRuntime()

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

(継承元 Object)
ValidOps()

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

Wait()

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

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

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

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

(継承元 Object)

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

IJavaPeerable.Disposed()

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

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

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

(継承元 Object)
IJavaPeerable.Finalized()

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

(継承元 Object)
IJavaPeerable.JniManagedPeerState

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

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

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

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

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

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

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

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

適用対象