Partager via


Phaser.OnAdvance(Int32, Int32) Méthode

Définition

Méthode substituable pour effectuer une action lors de l’avance de la phase imminente et pour contrôler l’arrêt.

[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

Paramètres

phase
Int32

numéro de phase actuel lors de l’entrée dans cette méthode, avant que ce phaser ne soit avancé

registeredParties
Int32

le nombre actuel de parties inscrites

Retours

true si ce phaser doit se terminer

Attributs

Remarques

Méthode substituable pour effectuer une action lors de l’avance de la phase imminente et pour contrôler l’arrêt. Cette méthode est appelée à l’arrivée de la partie qui avance ce phaseur (lorsque toutes les autres parties en attente sont dormantes). Si cette méthode retourne true, ce phaseur est défini sur un état d’arrêt final à l’avance et les appels suivants retournent #isTerminated true. Toute exception (non cochée) ou erreur levée par un appel de cette méthode est propagée à la partie qui tente d’avancer ce phaseur, auquel cas aucune avance ne se produit.

Les arguments de cette méthode fournissent l’état du phaseur dominant pour la transition actuelle. Les effets de l’appel des méthodes d’arrivée, d’inscription et d’attente sur ce phaser de l’intérieur onAdvance ne sont pas spécifiés et ne doivent pas être pris en compte.

Si ce phaseur est membre d’un ensemble hiérarchisé de phasers, il onAdvance est appelé uniquement pour son phaser racine à chaque avance.

Pour prendre en charge les cas d’usage les plus courants, l’implémentation par défaut de cette méthode retourne true lorsque le nombre de parties inscrites est devenu zéro en raison d’un appel de arriveAndDeregisterpartie. Vous pouvez désactiver ce comportement, ce qui permet la continuation lors des inscriptions futures, en remplaçant cette méthode pour toujours retourner false:

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

Documentation Java pour java.util.concurrent.Phaser.onAdvance(int, int).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à