Phaser.OnAdvance(Int32, Int32) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overridable method to perform an action upon impending phase advance, and to control termination.
[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
Parameters
- phase
- Int32
the current phase number on entry to this method, before this phaser is advanced
- registeredParties
- Int32
the current number of registered parties
Returns
true
if this phaser should terminate
- Attributes
Remarks
Overridable method to perform an action upon impending phase advance, and to control termination. This method is invoked upon arrival of the party advancing this phaser (when all other waiting parties are dormant). If this method returns true
, this phaser will be set to a final termination state upon advance, and subsequent calls to #isTerminated
will return true. Any (unchecked) Exception or Error thrown by an invocation of this method is propagated to the party attempting to advance this phaser, in which case no advance occurs.
The arguments to this method provide the state of the phaser prevailing for the current transition. The effects of invoking arrival, registration, and waiting methods on this phaser from within onAdvance
are unspecified and should not be relied on.
If this phaser is a member of a tiered set of phasers, then onAdvance
is invoked only for its root phaser on each advance.
To support the most common use cases, the default implementation of this method returns true
when the number of registered parties has become zero as the result of a party invoking arriveAndDeregister
. You can disable this behavior, thus enabling continuation upon future registrations, by overriding this method to always return false
:
{@code
Phaser phaser = new Phaser() {
protected boolean onAdvance(int phase, int parties) { return false; }
};}
Java documentation for java.util.concurrent.Phaser.onAdvance(int, int)
.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.