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 仅针对每个提前阶段的根分阶段器调用。

为了支持最常见的用例,此方法的默认实现在 true 注册方数因参与方调用 arriveAndDeregister而变为零时返回。 可以通过重写此方法始终返回 false来禁用此行为,从而在将来注册时启用延续:

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

适用于 . 的 java.util.concurrent.Phaser.onAdvance(int, int)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于