SelectionKey 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
權杖,表示向 Selector
註冊 SelectableChannel
。
[Android.Runtime.Register("java/nio/channels/SelectionKey", DoNotGenerateAcw=true)]
public abstract class SelectionKey : Java.Lang.Object
[<Android.Runtime.Register("java/nio/channels/SelectionKey", DoNotGenerateAcw=true)>]
type SelectionKey = class
inherit Object
- 繼承
- 衍生
- 屬性
備註
權杖,表示向 Selector
註冊 SelectableChannel
。
每次向選取器註冊通道時,都會建立選取索引鍵。 金鑰會維持有效狀態,直到叫用其 方法、關閉其 #cancel cancel
通道或關閉其選取器來取消為止。 取消金鑰並不會立即將其從選取器中移除;它會改為新增至選取器的 < i > cancelled-key set < /i > ,以供在下一個選取作業期間移除。 叫用金鑰的方法可以測試金鑰 #isValid isValid
的有效性。
「opsets」>
選取索引鍵包含兩個以整數值表示的 作業集 。 作業集的每一個位都代表索引鍵通道所支援的可選取作業類別。
<ul>
<li>
興趣集合決定下次叫用其中一個選取器選取方法時,將會測試哪些作業類別的整備程度。 興趣集會使用建立索引鍵時指定的值初始化;稍後可能會透過 #interestOps(int)
方法加以變更。
</李>
<li>
就緒集合會識別金鑰通道已偵測到可供金鑰選取器準備的作業類別。 建立索引鍵時,就緒集合會初始化為零;稍後可能會由選取器在選取作業期間更新,但無法直接更新。
</李>
</ul>
選取索引鍵的就緒集合表示其通道已準備好供某些作業類別目錄使用,但無法保證這類類別中的作業可由執行緒執行,而不會造成執行緒封鎖。 就緒集合最有可能在選取作業完成之後立即正確。 外來事件和在對應通道上叫用的 I/O 作業可能不正確。
這個類別會定義所有已知的作業集位,但精確來說,指定的通道支援哪些位取決於通道的類型。 的每個 子類別 SelectableChannel
都會定義一個 SelectableChannel#validOps() validOps()
方法,以傳回集合,只識別通道所支援的作業。 嘗試設定或測試金鑰通道不支援的作業集位,將會導致適當的執行時間例外狀況。
通常必須將某些應用程式特定資料與選取索引鍵產生關聯,例如代表較高層級通訊協定狀態的物件,並處理整備通知以實作該通訊協定。 因此,選取索引鍵支援單一任意物件的 附件 至索引鍵。 物件可以透過 #attach attach
方法附加,之後再透過 #attachment() attachment
方法擷取。
選取索引鍵可供多個平行線程使用。 選取作業一律會使用作業開始時目前感興趣的設定值。
已在 1.4 中新增。
的 java.nio.channels.SelectionKey
JAVA 檔。
此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
建構函式
SelectionKey() |
建構這個類別的實例。 |
SelectionKey(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 標記法時使用的建構函式;由執行時間呼叫。 |
欄位
OpAccept |
已淘汰.
通訊端接受作業的作業集位。 |
OpConnect |
已淘汰.
通訊端連線作業的作業集位。 |
OpRead |
已淘汰.
讀取作業的作業集位。 |
OpWrite |
已淘汰.
寫入作業的作業集位。 |
屬性
Class |
傳回這個 |
Handle |
基礎 Android 實例的控制碼。 (繼承來源 Object) |
IsAcceptable |
測試此金鑰的通道是否準備好接受新的通訊端連線。 |
IsConnectable |
測試此金鑰的通道是否已完成或無法完成其通訊端連線作業。 |
IsReadable |
測試此索引鍵的通道是否已準備好讀取。 |
IsValid |
指出此金鑰是否有效。 |
IsWritable |
測試此金鑰的通道是否已準備好寫入。 |
JniIdentityHashCode |
權杖,表示向 |
JniPeerMembers |
權杖,表示向 |
PeerReference |
權杖,表示向 |
ThresholdClass |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 |
ThresholdType |
此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。 |
方法
Attach(Object) |
將指定的 物件附加至這個索引鍵。 |
Attachment() |
擷取目前的附件。 |
Cancel() |
要求取消此金鑰通道及其選取器註冊。 |
Channel() |
傳回建立此金鑰的通道。 |
Clone() |
建立並傳回這個 物件的複本。 (繼承來源 Object) |
Dispose() |
權杖,表示向 |
Dispose(Boolean) |
權杖,表示向 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
InterestOps() |
擷取此金鑰的興趣集。 |
InterestOps(Operations) |
擷取此金鑰的興趣集。 |
InterestOpsAnd(Int32) |
以不可部分完成的方式將此索引鍵的興趣設定為位交集 (「和」) 現有興趣集和指定值。 |
InterestOpsOr(Int32) |
以不可部分完成的方式將此索引鍵的興趣設定為位聯集 (「或」) 現有興趣集和指定值。 |
JavaFinalize() |
當垃圾收集判斷物件不再參考物件時,垃圾收集行程會在物件上呼叫。 (繼承來源 Object) |
Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
ReadyOps() |
擷取此金鑰的就緒作業集。 |
Selector() |
傳回建立此金鑰的選取器。 |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
ToArray<T>() |
權杖,表示向 |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterFromRuntime() |
權杖,表示向 |
Wait() |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > 。 >< (繼承來源 Object) |
Wait(Int64) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <> (繼承來源 Object) |
明確介面實作
IJavaPeerable.Disposed() |
權杖,表示向 |
IJavaPeerable.DisposeUnlessReferenced() |
權杖,表示向 |
IJavaPeerable.Finalized() |
權杖,表示向 |
IJavaPeerable.JniManagedPeerState |
權杖,表示向 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
權杖,表示向 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
權杖,表示向 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
權杖,表示向 |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
權杖,表示向 |
GetJniTypeName(IJavaPeerable) |
權杖,表示向 |