Freigeben über


Phaser.OnAdvance(Int32, Int32) Methode

Definition

Überschreibbare Methode zum Ausführen einer Aktion nach dem Vorlauf der Phase und zum Steuern des Beendens.

[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

Parameter

phase
Int32

die aktuelle Phasesnummer für den Eintrag zu dieser Methode, bevor dieser Phaser erweitert wird

registeredParties
Int32

die aktuelle Anzahl registrierter Parteien

Gibt zurück

true wenn dieser Phaser beendet werden soll

Attribute

Hinweise

Überschreibbare Methode zum Ausführen einer Aktion nach dem Vorlauf der Phase und zum Steuern des Beendens. Diese Methode wird bei Der Ankunft der Partei aufgerufen, die diesen Phaser voranschreitet (wenn alle anderen Warteparteien ruhen). Wenn diese Methode zurückgibt true, wird dieser Phaser nach dem Voraus auf einen endgültigen Beendigungszustand festgelegt, und nachfolgende Aufrufe geben #isTerminated "true" zurück. Jede (deaktivierte) Ausnahme oder ein fehler, der durch einen Aufruf dieser Methode ausgelöst wird, wird an die Partei weitergegeben, die versucht, diesen Phaser zu voranschreiten, in diesem Fall tritt kein Fortschritt auf.

Die Argumente für diese Methode stellen den Zustand des phasers dar, der für den aktuellen Übergang gilt. Die Auswirkungen des Aufrufens von Ankunft, Registrierung und Wartemethoden auf diesen Phaser von innen onAdvance sind nicht angegeben und sollten nicht verwendet werden.

Wenn dieser Phaser ein Mitglied einer mehrstufigen Gruppe von Phasern ist, wird er onAdvance nur für den Root-Phaser für jeden Fortschritt aufgerufen.

Um die am häufigsten verwendeten Anwendungsfälle zu unterstützen, gibt die Standardimplementierung dieser Methode zurück true , wenn die Anzahl der registrierten Parteien als Ergebnis des Aufrufs arriveAndDeregistereiner Partei null geworden ist. Sie können dieses Verhalten deaktivieren und so eine Fortsetzung bei zukünftigen Registrierungen aktivieren, indem Sie diese Methode so überschreiben, dass immer zurückgegeben wird false:

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

Java-Dokumentation für java.util.concurrent.Phaser.onAdvance(int, int).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: