类 Sequence<T>

所有已实现的接口:
ICancelTokenListener

public class Sequence<T> extends SingleRunningChildBranch<T>
作者:
wjybxx date - 2023/11/26
  • 构造器详细资料

    • Sequence

      public Sequence()
    • Sequence

      public Sequence(List<Task<T>> children)
    • Sequence

      public Sequence(Task<T> first, @Nullable Task<T> second)
  • 方法详细资料

    • enter

      protected void enter(int reentryId)
      从类复制的说明: Task
      该方法在Task进入运行状态时执行 1.数据初始化需要放在Task.beforeEnter()中,避免执行逻辑时对象未初始化完成。 2.如果要初始化子节点,也放到Task.beforeEnter()方法; 3.允许更新自己为完成状态
      覆盖:
      enter 在类中 Task<T>
      参数:
      reentryId - 用于判断父类是否使任务进入了完成状态;虽然也可先捕获再调用超类方法,但传入会方便许多。
    • onChildRunning

      protected void onChildRunning(Task<T> child, boolean starting)
      从类复制的说明: SingleRunningChildBranch
      子类如果支持内联,则重写该方法
      覆盖:
      onChildRunning 在类中 SingleRunningChildBranch<T>
      参数:
      starting - 是否是启动时调用,即首次调用
    • onChildCompleted

      protected void onChildCompleted(Task<T> child)
      从类复制的说明: SingleRunningChildBranch
      子类的实现模板:
      
      
        protected void onChildCompleted(Task child) {
            runningChild = null;
            inlinedHolder.stopInline();
            // 尝试计算结果(记得处理取消)
            ...
            // 如果未得出结果
            if (!isExecuting()) {
                template_execute();
            }
        }
       
      ps: 推荐子类重复编码避免调用super
      覆盖:
      onChildCompleted 在类中 SingleRunningChildBranch<T>