using Milimoe.FunGame.Core.Interface.Base; namespace Milimoe.FunGame.Core.Library.Common.Architecture { /// /// 任务的等待器,可以设置在任务完成后需要的操作 /// public struct TaskAwaiter { /// /// 任务是否完成 /// public readonly bool IsCompleted => awaiter.IsCompleted; /// /// 内部实现类 /// /// private ITaskAwaiter awaiter; /// /// 构造一个等待器 /// /// internal TaskAwaiter(ITaskAwaiter awaiter) { this.awaiter = awaiter; } /// /// 返回TaskAwaiter可以连续的调用方法 /// 但是意义不大,前一个OnCompleted方法并不会等待下一个方法 /// 可以理解为并行广播 /// /// /// public TaskAwaiter OnCompleted(Action action) { awaiter = awaiter.OnCompleted(action); return this; } } }