語言

Phaser.OnAdvance(Int32, Int32) 方法

定義

可覆寫的方法,用於在即將相位前進時執行動作,並控制終止。

[Android.Runtime.Register("onAdvance", "(II)Z", "GetOnAdvance_IIHandler")]
protected virtual bool OnAdvance(int phase, int registeredParties);
[<Android.Runtime.Register("onAdvance", "(II)Z", "GetOnAdvance_IIHandler")>]
abstract member OnAdvance : int * int -> bool
override this.OnAdvance : int * int -> bool

參數

phase
Int32

進入此方法時,該相位槍推進前的當前相位數

registeredParties
Int32

目前註冊政黨數量

傳回

true 如果這把相位槍會終止的話

屬性

備註

可覆寫的方法,用於在即將相位前進時執行動作,並控制終止。 此方法在推進該相位槍的隊伍抵達時啟動(當其他等待隊伍皆處於休眠狀態)。 若此方法回傳 true,該相位器將被設定為前進時的最終終止狀態,後續呼叫 則 #isTerminated 返回 true。 任何由此方法呼叫所拋出的(未檢查的)異常或錯誤,會傳給試圖推進此相位槍的一方,若如此則不會發生前進。

此方法的論證提供了當前轉換中相位器狀態的說明。 從內部 onAdvance 啟動抵達、登記及等待方式對此相位槍的影響尚未明確說明,不應依賴。

若此相位器屬於分層相位器組,則 onAdvance 每次前進時僅為其根相位器調用。

為了支援最常見的使用情境,當當方arriveAndDeregister因呼叫而註冊當事人數變為零時,此方法的預設實作會回傳true。 你可以透過覆寫此方法來關閉此行為, false從而在未來註冊時繼續使用:

{@code
            Phaser phaser = new Phaser() {
              protected boolean onAdvance(int phase, int parties) { return false; }
            };}

Java 文件 java.util.concurrent.Phaser.onAdvance(int, int)

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

適用於