語言

Selector.Select 方法

定義

多載

名稱 Description
Select(IConsumer, Int64)

選擇並執行對應通道已準備好進行輸入輸出操作的金鑰的操作。

Select(Int64)

選擇一組金鑰,其對應通道已準備好進行 I/O 操作。

Select()

選擇一組金鑰,其對應通道已準備好進行 I/O 操作。

Select(IConsumer)

選擇並執行對應通道已準備好進行輸入輸出操作的金鑰的操作。

Select(IConsumer, Int64)

選擇並執行對應通道已準備好進行輸入輸出操作的金鑰的操作。

[Android.Runtime.Register("select", "(Ljava/util/function/Consumer;J)I", "GetSelect_Ljava_util_function_Consumer_JHandler", ApiSince=33)]
public virtual int Select(Java.Util.Functions.IConsumer? action, long timeout);
[<Android.Runtime.Register("select", "(Ljava/util/function/Consumer;J)I", "GetSelect_Ljava_util_function_Consumer_JHandler", ApiSince=33)>]
abstract member Select : Java.Util.Functions.IConsumer * int64 -> int
override this.Select : Java.Util.Functions.IConsumer * int64 -> int

參數

action
IConsumer

執行動作

timeout
Int64

若為正,則在等待通道準備好期間,阻塞最多可達 timeout 毫秒;若為零,則無限阻擋;不得為負值

傳回

唯一金鑰的消耗量,可能是零

屬性

備註

選擇並執行對應通道已準備好進行輸入輸出操作的金鑰的操作。

此方法執行阻塞選擇操作。 只有當至少選中一個通道、呼叫該選擇器的方法 #wakeup wakeup 、當前執行緒中斷,或逾時期結束(以先到者為準)時,它才會從查詢作業系統中喚醒。

指定動作Consumer#accept(Object) accept的方法會被呼叫,每個準備執行由其鍵興趣集合識別的操作的通道的鍵值。 accept此方法可對同一鍵多次呼叫,但準備操作集包含通道已準備好的部分操作(如上所述)。 accept此方法在選擇器及其選中鍵集合同步時被呼叫。 必須非常小心,避免與其他同樣同步於這些物件的執行緒死鎖。 選擇操作通常不會重入, 因此動作應 非常小心,避免在同一個選擇器上嘗試選擇操作。 嘗試重入選擇操作時的行為是實作特定的,因此未特別指定。 如果 動作 關閉,則在動作完成時會拋出選擇器 ClosedSelectorException 。 此 動作 不禁止關閉與選擇器註冊的通道,也不禁止取消鍵或更改鍵的興趣組。 如果選擇了通道,但其鍵被取消或興趣設定變更,則是否會呼叫動作(可透過鍵SelectionKey#isValid() invalid呼叫)。 動作拋出的例外會傳達給來電者。

此方法不提供即時保證:它以呼叫方法的方式排程超時 Object#wait(long)

新增11。

Java 文件 java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>, long)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

Select(Int64)

選擇一組金鑰,其對應通道已準備好進行 I/O 操作。

[Android.Runtime.Register("select", "(J)I", "GetSelect_JHandler")]
public abstract int Select(long timeout);
[<Android.Runtime.Register("select", "(J)I", "GetSelect_JHandler")>]
abstract member Select : int64 -> int

參數

timeout
Int64

若為正,則在等待通道準備好期間,阻塞最多可達 timeout 毫秒;若為零,則無限阻擋;不得為負值

傳回

更新的準備運算集的鍵數,可能是零

屬性

例外狀況

如果選擇器關閉。

如果給定的逾時參數小於零。

如果發生 I/O 錯誤。

備註

選擇一組金鑰,其對應通道已準備好進行 I/O 操作。

此方法執行阻塞選擇操作。 只有在至少選中一個通道、呼叫此選擇器方法 #wakeup wakeup 、當前執行緒中斷或逾時期結束(以先到者為準)後,才會回傳。

此方法不提供即時保證:它以呼叫方法的方式排程超時 Object#wait(long)

Java 文件 java.nio.channels.Selector.select(long)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

Select()

選擇一組金鑰,其對應通道已準備好進行 I/O 操作。

[Android.Runtime.Register("select", "()I", "GetSelectHandler")]
public abstract int Select();
[<Android.Runtime.Register("select", "()I", "GetSelectHandler")>]
abstract member Select : unit -> int

傳回

更新的準備運算集的鍵數,可能是零

屬性

例外狀況

如果發生 I/O 錯誤。

如果選擇器關閉。

備註

選擇一組金鑰,其對應通道已準備好進行 I/O 操作。

此方法執行阻塞選擇操作。 只有在至少選中一個通道、呼叫此選擇器 #wakeup wakeup 方法,或當前執行緒中斷(以先發生者為準)後,才會回傳。

Java 文件 java.nio.channels.Selector.select()

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

Select(IConsumer)

選擇並執行對應通道已準備好進行輸入輸出操作的金鑰的操作。

[Android.Runtime.Register("select", "(Ljava/util/function/Consumer;)I", "GetSelect_Ljava_util_function_Consumer_Handler", ApiSince=33)]
public virtual int Select(Java.Util.Functions.IConsumer? action);
[<Android.Runtime.Register("select", "(Ljava/util/function/Consumer;)I", "GetSelect_Ljava_util_function_Consumer_Handler", ApiSince=33)>]
abstract member Select : Java.Util.Functions.IConsumer -> int
override this.Select : Java.Util.Functions.IConsumer -> int

參數

action
IConsumer

執行動作

傳回

唯一金鑰的消耗量,可能是零

屬性

備註

選擇並執行對應通道已準備好進行輸入輸出操作的金鑰的操作。

此方法執行阻塞選擇操作。 只有當至少選中一個通道、呼叫該選擇器的方法 #wakeup wakeup ,或當前執行緒中斷(以先發生者為準)時,它才會從查詢作業系統中喚醒。

此方法等同於以 為 的超時呼叫 2-arg #select(Consumer, long) select0 方法,以無限期封鎖。

新增11。

Java 文件 java.nio.channels.Selector.select(java.util.function.Consumer<java.nio.channels.SelectionKey>)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於