共用方式為


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 的方法可能會明確取消。 通道關閉時,所有通道的索引鍵都會隱含地取消,無論是叫用其 Channel#close close 方法,還是藉由中斷通道上的 I/O 作業中封鎖的線程。

如果選取器本身已關閉,則會取消註冊通道,且代表其註冊的密鑰將會失效,而不會進一步延遲。

通道最多可以向任何特定選取器註冊一次。

是否向一或多個選取器註冊通道,可藉由叫 #isRegistered isRegistered 用 方法來決定。

可選取的通道可供多個並行線程使用。

“bm”><h2>封鎖模式</h2>

可選取的通道處於 封鎖 模式或 非封鎖 模式。 在封鎖模式中,通道上叫用的每個 I/O 作業都會封鎖,直到完成為止。 在非封鎖模式中,I/O 作業永遠不會封鎖,而且可能會傳輸比要求的位元組少,或完全沒有位元組。 可選取通道的封鎖模式可藉由叫用其 #isBlocking isBlocking 方法來決定。

新建立的可選取通道一律處於封鎖模式。 非封鎖模式最適合與選取器型多任務處理搭配使用。 通道必須先進入非封鎖模式,再向選取器註冊,而且在取消註冊之前,可能無法回到封鎖模式。

已在1.4中新增。

java.nio.channels.SelectableChannelJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

SelectableChannel()

初始化這個類別的新執行個體。

SelectableChannel(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

屬性

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
Handle

基礎Android實例的句柄。

(繼承來源 Object)
IsBlocking

指出這個通道是否處於封鎖模式。

IsOpen

如果這個通道已開啟,則傳回 true。

(繼承來源 AbstractInterruptibleChannel)
IsRegistered

指出此通道是否已向至少一個選取器註冊。

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()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 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 <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()

可透過 多任務處理的 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通道。

適用於