Поделиться через


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 для java.util.concurrent.Phaser.onAdvance(int, int).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к