SelectableChannel クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| SelectableChannel() |
このクラスの新しいインスタンスを初期化します。 |
| SelectableChannel(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| IsBlocking |
このチャネルがブロック モードであるかどうかを示します。 |
| IsOpen |
このチャネルが開いている場合は true を返します。 (継承元 AbstractInterruptibleChannel) |
| IsRegistered |
このチャネルが少なくとも 1 つのセレクターに登録されているかどうかを示します。 |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
| 名前 | 説明 |
|---|---|
| Begin() |
無期限にブロックする可能性がある I/O 操作の開始をマークします。 (継承元 AbstractInterruptibleChannel) |
| BlockingLock() |
|
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Close() |
このチャネルを閉じます。 (継承元 AbstractInterruptibleChannel) |
| ConfigureBlocking(Boolean) |
このチャネルのブロッキング モードを調整します。 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
|
| End(Boolean) |
無期限にブロックする可能性がある I/O 操作の終了をマークします。 (継承元 AbstractInterruptibleChannel) |
| Equals(Object) |
|
| 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) |
|
| 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() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|