Share via


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.SelectableChannel JAVA 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 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()

擷取 #configureBlocking configureBlocking#register register 方法同步處理的物件。

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 通道。

適用於