跳到主要内容
版本:3.0.x

Class AsyncOperationBase

异步操作基类

Assembly: YooAsset.dll
View Source
Declaration
public abstract class AsyncOperationBase : IEnumerator, IComparable<AsyncOperationBase>

Properties

IsBusy

当前帧时间切片是否已用完

View Source
Declaration
protected bool IsBusy { get; }

Priority

任务优先级(值越大越优先执行)

View Source
Declaration
public uint Priority { get; set; }

Progress

异步操作的处理进度(0f - 1f)

View Source
Declaration
public float Progress { get; protected set; }

IsDone

异步操作是否已结束

View Source
Declaration
public bool IsDone { get; }

Error

操作失败时的错误描述

View Source
Declaration
public string Error { get; }

Status

异步操作的当前状态

View Source
Declaration
public EOperationStatus Status { get; }

Methods

WaitForCompletion()

同步等待异步执行完毕

View Source
Declaration
public void WaitForCompletion()

InternalStart()

内部启动方法(子类必须实现)

View Source
Declaration
protected abstract void InternalStart()

InternalUpdate()

内部更新方法(子类必须实现)

View Source
Declaration
protected abstract void InternalUpdate()

InternalAbort()

内部中止方法(子类可选实现)

View Source
Declaration
protected virtual void InternalAbort()

InternalDispose()

内部释放方法(子类可选实现)

View Source
Declaration
protected virtual void InternalDispose()

InternalGetDescription()

获取操作的描述信息(子类可选实现)

View Source
Declaration
protected virtual string InternalGetDescription()
Returns

System.String: 操作的描述字符串,默认返回空字符串。### InternalWaitForCompletion() 内部同步等待方法(子类可选实现)

View Source
Declaration
protected virtual void InternalWaitForCompletion()

SetResult()

将操作标记为成功完成

View Source
Declaration
protected void SetResult()

SetError(string)

将操作标记为失败

View Source
Declaration
protected void SetError(string error)
Parameters
TypeNameDescription
System.Stringerror错误描述

CalculateMultiStageProgress(int, int, int, int)

计算多阶段操作的整体进度

View Source
Declaration
protected float CalculateMultiStageProgress(int stageIndex, int stageCount, int remaining, int total)
Returns

System.Single: 返回归一化的整体进度值(0-1)

Parameters
TypeNameDescription
System.Int32stageIndex当前阶段索引(从0开始)
System.Int32stageCount阶段总数
System.Int32remaining当前阶段剩余工作量
System.Int32total当前阶段总工作量

AddChildOperation(AsyncOperationBase)

添加子任务

View Source
Declaration
protected void AddChildOperation(AsyncOperationBase child)
Parameters
TypeNameDescription
YooAsset.AsyncOperationBasechild要添加的子任务

RemoveChildOperation(AsyncOperationBase)

移除子任务

View Source
Declaration
protected void RemoveChildOperation(AsyncOperationBase child)
Parameters
TypeNameDescription
YooAsset.AsyncOperationBasechild要移除的子任务

ExecuteOnce()

执行一次更新逻辑

View Source
Declaration
protected void ExecuteOnce()

ExecuteBatch(int)

批量执行一定次数的更新逻辑

View Source
Declaration
protected void ExecuteBatch(int count = 1000)
Parameters
TypeNameDescription
System.Int32count最大执行次数,默认1000次。

ExecuteUntilComplete(int)

循环执行更新逻辑直到操作完成

View Source
Declaration
protected void ExecuteUntilComplete(int sleepMilliseconds = 1)
Parameters
TypeNameDescription
System.Int32sleepMilliseconds每次循环后的休眠时长(毫秒)

CompareTo(AsyncOperationBase)

View Source
Declaration
public int CompareTo(AsyncOperationBase other)
Returns

System.Int32

Parameters
TypeName
YooAsset.AsyncOperationBaseother

GetAwaiter()

获取用于 async/await 的等待器

View Source
Declaration
public OperationAwaiter GetAwaiter()
Returns

YooAsset.OperationAwaiter: 当前操作的等待器## Events

Completed

异步操作的完成事件

View Source
Declaration
public event Action<AsyncOperationBase> Completed
Event Type

System.Action<YooAsset.AsyncOperationBase>

Implements

  • System.Collections.IEnumerator
  • System.IComparable<YooAsset.AsyncOperationBase>