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

Class AsyncOperationBase

异步操作基类

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

Properties​

IsWaitForCompletion​

是否正处于同步等待状态

View Source​
Declaration
protected bool IsWaitForCompletion { get; }

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()

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当前阶段总工作量

CalculateMultiStageProgress(int, int, float)​

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

View Source​
Declaration
protected float CalculateMultiStageProgress(int stageIndex, int stageCount, float stageProgress)
Returns​

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

Parameters​
TypeNameDescription
System.Int32stageIndex当前阶段索引(从0开始)
System.Int32stageCount阶段总数
System.SinglestageProgress当前阶段进度(0-1)

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>